Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

38 Zeilen
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())