You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.1KB

  1. from MAXPacket import PushButtonState
  2. class MAXDevice:
  3. def __init__(self, name, address):
  4. self.address: str = address
  5. self.name: str = name
  6. def to_string(self):
  7. return "{};{}".format(self.name, self.address.lower())
  8. def from_string(line):
  9. splitted = line.split(';')
  10. if len(splitted) >= 3:
  11. if splitted[0] == "1":
  12. new_dev = MAXThermostat(splitted[1], splitted[2].lower())
  13. return new_dev
  14. elif splitted[0] == "5":
  15. new_dev = MAXPushButton(splitted[1], splitted[2].lower())
  16. return new_dev
  17. class MAXPushButton(MAXDevice):
  18. def __init__(self, name, address):
  19. super(MAXPushButton, self).__init__(name, address)
  20. self.state = PushButtonState.UNKNOWN
  21. def serialize(self):
  22. return "5;{}".format(self.to_string())
  23. class MAXThermostat(MAXDevice):
  24. def __init__(self, name, address):
  25. super(MAXThermostat, self).__init__(name, address)
  26. def serialize(self):
  27. return "1;{}".format(self.to_string())