1 # Copyright (C) 2010 Richard Lincoln
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA, USA
17 from CIM14
.Element
import Element
19 class RemoteConnectDisconnectInfo(Element
):
20 """Details of remote connect disconnect function.
23 def __init__(self
, needsPowerLimitCheck
=False, isEnergyLimiting
=False, isArmConnect
=False, energyUsageWarning
=0.0, armedTimeout
=0.0, energyUsageStartDateTime
='', isArmDisconnect
=False, needsVoltageLimitCheck
=False, powerLimit
=0.0, usePushbutton
=False, customerVoltageLimit
=0.0, energyLimit
=0.0, *args
, **kw_args
):
24 """Initialises a new 'RemoteConnectDisconnectInfo' instance.
26 @param needsPowerLimitCheck: True if load limit must be checked to issue an immediate disconnect (after a connect) if load is over the limit.
27 @param isEnergyLimiting: True if the energy usage is limited and the customer will be disconnected if they go over the limit.
28 @param isArmConnect: True if the RCD switch must be armed before a connect action can be initiated.
29 @param energyUsageWarning: Warning energy limit, used to trigger event code that energy usage is nearing limit.
30 @param armedTimeout: Setting of the timeout elapsed time.
31 @param energyUsageStartDateTime: Start date and time to accumulate energy for energy usage limiting.
32 @param isArmDisconnect: True if the RCD switch must be armed before a disconnect action can be initiated.
33 @param needsVoltageLimitCheck: True if voltage limit must be checked to prevent connect if voltage is over the limit.
34 @param powerLimit: Load limit above which the connect should either not take place or should cause an immediate disconnect.
35 @param usePushbutton: True if pushbutton must be used for connect.
36 @param customerVoltageLimit: Voltage limit on customer side of RCD switch above which the connect should not be made.
37 @param energyLimit: Limit of energy before disconnect.
39 #: True if load limit must be checked to issue an immediate disconnect (after a connect) if load is over the limit.
40 self
.needsPowerLimitCheck
= needsPowerLimitCheck
42 #: True if the energy usage is limited and the customer will be disconnected if they go over the limit.
43 self
.isEnergyLimiting
= isEnergyLimiting
45 #: True if the RCD switch must be armed before a connect action can be initiated.
46 self
.isArmConnect
= isArmConnect
48 #: Warning energy limit, used to trigger event code that energy usage is nearing limit.
49 self
.energyUsageWarning
= energyUsageWarning
51 #: Setting of the timeout elapsed time.
52 self
.armedTimeout
= armedTimeout
54 #: Start date and time to accumulate energy for energy usage limiting.
55 self
.energyUsageStartDateTime
= energyUsageStartDateTime
57 #: True if the RCD switch must be armed before a disconnect action can be initiated.
58 self
.isArmDisconnect
= isArmDisconnect
60 #: True if voltage limit must be checked to prevent connect if voltage is over the limit.
61 self
.needsVoltageLimitCheck
= needsVoltageLimitCheck
63 #: Load limit above which the connect should either not take place or should cause an immediate disconnect.
64 self
.powerLimit
= powerLimit
66 #: True if pushbutton must be used for connect.
67 self
.usePushbutton
= usePushbutton
69 #: Voltage limit on customer side of RCD switch above which the connect should not be made.
70 self
.customerVoltageLimit
= customerVoltageLimit
72 #: Limit of energy before disconnect.
73 self
.energyLimit
= energyLimit
75 super(RemoteConnectDisconnectInfo
, self
).__init
__(*args
, **kw_args
)
77 _attrs
= ["needsPowerLimitCheck", "isEnergyLimiting", "isArmConnect", "energyUsageWarning", "armedTimeout", "energyUsageStartDateTime", "isArmDisconnect", "needsVoltageLimitCheck", "powerLimit", "usePushbutton", "customerVoltageLimit", "energyLimit"]
78 _attr_types
= {"needsPowerLimitCheck": bool, "isEnergyLimiting": bool, "isArmConnect": bool, "energyUsageWarning": float, "armedTimeout": float, "energyUsageStartDateTime": str, "isArmDisconnect": bool, "needsVoltageLimitCheck": bool, "powerLimit": float, "usePushbutton": bool, "customerVoltageLimit": float, "energyLimit": float}
79 _defaults
= {"needsPowerLimitCheck": False, "isEnergyLimiting": False, "isArmConnect": False, "energyUsageWarning": 0.0, "armedTimeout": 0.0, "energyUsageStartDateTime": '', "isArmDisconnect": False, "needsVoltageLimitCheck": False, "powerLimit": 0.0, "usePushbutton": False, "customerVoltageLimit": 0.0, "energyLimit": 0.0}