Source code for lvmnps.switch.outlet

# -*- coding: utf-8 -*-
#
# @Author: Florian Briegel (briegel@mpia.de)
# @Date: 2021-06-22
# @Filename: lvmnps/switch/outlet.py
# @License: BSD 3-clause (http://www.opensource.org/licenses/BSD-3-Clause)


[docs]class Outlet(object): """ A power outlet class """ def __init__(self, swname, name, portnum, description, state): self.swname = swname self.name = name if name else f"{swname}.port{portnum}" self.portnum = portnum self.description = description if description else f"{swname} Port {portnum}" self.inuse = bool(name) or bool(description) self.state = state def __str__(self): return f"#{self.portnum}:{self.name}={self.state}" def __repr__(self): return self.__str__()
[docs] @staticmethod def parse(value): if value in ["off", "OFF", "0", 0, False]: return 0 if value in ["on", "ON", "1", 1, True]: return 1 return -1
[docs] def setState(self, value): self.state = Outlet.parse(value)
# print(self.state)
[docs] def isOn(self): return self.state == 1
[docs] def isOff(self): return self.state == 0
[docs] def isValid(self): return self.state == -1
[docs] def toJson(self): return { "STATE": self.state, "DESCR": self.description, "SWITCH": self.swname, "PORT": self.portnum, }