diff --git a/libraries/power_switch.robot b/libraries/power_switch.robot
index 6d9c118..19c5974 100644
--- a/libraries/power_switch.robot
+++ b/libraries/power_switch.robot
@@ -13,45 +13,117 @@
 # limitations under the License.
 
 *** Settings ***
-Documentation     Library for Digital Loggers Web Power Switch
-                  ...    Official Document: https://www.digital-loggers.com/rest.html
+Documentation     Library for Web Power Switch, support DLI(Digital Loggers)
+                  ...    and EPC(Expert Power Control)
 Library           Collections
 Library           RequestsLibrary
 
 *** Variables ***
 ${timeout}       60s
 ${alias_name}    Switch Outlet
-${restapi_uri}   restapi/relay/outlets/
 
 *** Keywords ***
 Power Switch Connection Suite
     [Arguments]    ${ip}    ${username}    ${password}
     [Documentation]    Setup The HTTP Session To Web Power Switch
+    Variable Should Exist    ${powerswitch_type}
+    ...    'Miss Global Variable powerswitch_type, available options are EPC, DLI'
+    Run Keyword IF    '${powerswitch_type}' == 'DLI'    Setup DLI Power Switch    ${ip}    ${username}    ${password}
+    ...    ELSE IF    '${powerswitch_type}' == 'EPC'    Setup EPC Power Switch    ${ip}    ${username}    ${password}
+    ...    ELSE    Fail    'The Power Switch Type unsupported: ${powerswitch_type}'
+
+Enable Switch Outlet
+    [Arguments]    ${outlet_number}
+    [Documentation]    Enable specific outlet of the Web Power Switch
+    Variable Should Exist    ${powerswitch_type}
+    ...    'Miss Global Variable powerswitch_type, available options are EPC, DLI'
+    Run Keyword IF    '${powerswitch_type}' == 'DLI'    Enable DLI Switch Outlet   ${outlet_number}
+    ...    ELSE IF    '${powerswitch_type}' == 'EPC'    Enable EPC Switch Outlet   ${outlet_number}
+    ...    ELSE    Fail    'The Power Switch Type unsupported: ${powerswitch_type}'
+
+
+Disable Switch Outlet
+    [Arguments]    ${outlet_number}
+    [Documentation]    Disable specific outlet of the web Power Switch
+    Variable Should Exist    ${powerswitch_type}
+    ...    'Miss Global Variable powerswitch_type, available options are EPC, DLI'
+    Run Keyword IF    '${powerswitch_type}' == 'DLI'    Disable DLI Switch Outlet   ${outlet_number}
+    ...    ELSE IF    '${powerswitch_type}' == 'EPC'    Disable EPC Switch Outlet   ${outlet_number}
+    ...    ELSE    Fail    'The Power Switch Type unsupported: ${powerswitch_type}'
+
+Check Expected Switch Outlet Status
+    [Arguments]    ${outlet_number}    ${status}
+    [Documentation]    Succeeds if the status of the desired switch outlet is expected
+    Variable Should Exist    ${powerswitch_type}
+    ...    'Miss Global Variable powerswitch_type, available options are EPC, DLI'
+    Run Keyword IF    '${powerswitch_type}' == 'DLI'    Check Expected DLI Switch Outlet Status    ${outlet_number}
+    ...    ELSE IF    '${powerswitch_type}' == 'EPC'    Check Expected EPC Switch Outlet Status    ${outlet_number}
+    ...    ELSE    Fail    'The Power Switch Type unsupported: ${powerswitch_type}'
+
+#Intenal Use Only
+Setup DLI Power Switch
+    [Arguments]    ${ip}    ${username}    ${password}
+    [Documentation]    Setup The HTTP Session To Web Power Switch
     ${auth}=    Create List    ${username}    ${password}
     ${headers}=    Create Dictionary
     Set To Dictionary    ${headers}    X-CSRF    x
     Set To Dictionary    ${headers}    Content-Type    application/x-www-form-urlencoded
-    Create Digest Session    alias=${alias_name}    url=http://${ip}/${restapi_uri}
+    Create Digest Session    alias=${alias_name}    url=http://${ip}/restapi/relay/outlets/
     ...    auth=${auth}    headers=${headers}
 
-Enable Switch Outlet
+Setup EPC Power Switch
+    [Arguments]    ${ip}    ${username}    ${password}
+    [Documentation]    Setup The HTTP Session To Web Power Switch
+    ${auth}=    Create List    ${username}    ${password}
+    ${headers}=    Create Dictionary
+    Set To Dictionary    ${headers}    X-CSRF    x
+    Set To Dictionary    ${headers}    Content-Type    application/x-www-form-urlencoded
+    Create Digest Session    alias=${alias_name}    url=http://${ip}
+    ...    auth=${auth}    headers=${headers}
+
+
+Enable DLI Switch Outlet
     [Arguments]    ${outlet_number}
-    [Documentation]    Enable specific outlet of the Web Power Switch
+    [Documentation]    Enable specific outlet of DLI power switch
     ${resp}=    Put Request    alias=${alias_name}    uri==${outlet_number}/state/    data=value=true
     Should Be Equal As Strings  ${resp.status_code}  207
     Wait Until Keyword Succeeds    ${timeout}    2s
-    ...    Check Expected Switch Outlet Status    ${outlet_number}    true
+    ...    Check Expected DLI Switch Outlet Status    ${outlet_number}    true
 
-Disable Switch Outlet
+Enable EPC Switch Outlet
     [Arguments]    ${outlet_number}
-    [Documentation]    Disable specific outlet of the Web Power Switch
+    [Documentation]    Enable specific outlet of EPC power switch
+    ${resp}=    Get Request    alias=${alias_name}    uri=ov.html?cmd=1&p=${outlet_number}&s=1
+    Wait Until Keyword Succeeds    ${timeout}    2s
+    ...    Check Expected EPC Switch Outlet Status    ${outlet_number}    1
+
+Disable DLI Switch Outlet
+    [Arguments]    ${outlet_number}
+    [Documentation]    Disable specific outlet of DLI Power Switch
     ${resp}=    Put Request    alias=${alias_name}    uri==${outlet_number}/state/    data=value=false
     Should Be Equal As Strings  ${resp.status_code}  207
     Wait Until Keyword Succeeds    ${timeout}    2s
-    ...    Check Expected Switch Outlet Status    ${outlet_number}    false
+    ...    Check Expected DLI Switch Outlet Status    ${outlet_number}    false
 
-Check Expected Switch Outlet Status
+Disable EPC Switch Outlet
+    [Arguments]    ${outlet_number}
+    [Documentation]    Disable specific outlet of EPC Power Switch
+    ${resp}=    Get Request    alias=${alias_name}    uri=ov.html?cmd=1&p=${outlet_number}&s=0
+    Wait Until Keyword Succeeds    ${timeout}    2s
+    ...    Check Expected EPC Switch Outlet Status    ${outlet_number}    0
+
+Check Expected DLI Switch Outlet Status
     [Arguments]    ${outlet_number}    ${status}
-    [Documentation]    Succeeds if the status of the desired switch outlet is expected
+    [Documentation]    Succeeds if the status of the desired DLI switch outlet is expected
     ${resp}=    Get Request    alias=${alias_name}    uri==${outlet_number}/state/
     Should Be Equal As Strings  ${resp.text}  [${status}]
+
+Check Expected EPC Switch Outlet Status
+    [Arguments]    ${outlet_number}    ${status}
+    [Documentation]    Succeeds if the status of the desired EPC switch outlet is expected
+    ${resp}=    Get Request    alias=${alias_name}    uri=statusjsn.js?components=1
+    ${outlet_number}=  Convert To Number  ${outlet_number}
+    ${rc}    ${outlet_status}    Run and Return Rc And Output
+    ...    echo '${resp.text}' | jq -r .outputs[${outlet_number - 1}].state
+    Should Be Equal As Integers    0    ${rc}
+    Should Be Equal As Strings  ${outlet_status}  ${status}
diff --git a/tests/functional/Voltha_FailureScenarios.robot b/tests/functional/Voltha_FailureScenarios.robot
index 32ae0dc..45026fa 100644
--- a/tests/functional/Voltha_FailureScenarios.robot
+++ b/tests/functional/Voltha_FailureScenarios.robot
@@ -14,7 +14,7 @@
 
 *** Settings ***
 Documentation     Test various failure scenarios
-Suite Setup       Common Test Suite Setup
+Suite Setup       Setup Suite
 Test Setup        Setup
 Test Teardown     Teardown
 #Suite Teardown    Teardown Suite
@@ -424,6 +424,8 @@
 Setup Suite
     [Documentation]    Set up the test suite
     Common Test Suite Setup
+    #power_switch.robot needs it to support different vendor's power switch
+    Set Global Variable    ${powerswitch_type}    ${web_power_switch.type}
 
 Clear All Devices Then Create New Device
     [Documentation]    Remove any devices from VOLTHA and ONOS
