server.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/Users/stan/Development/ElaadNL/pyopenadr/.python/bin/python3
  2. # A simple Python OpenADR VTN Server.
  3. from pyopenadr.service import api
  4. from pyopenadr.service import PollService, EventService, PollService, RegistrationService, ReportService
  5. class OpenADRServer:
  6. def __init__(self):
  7. self.api = api
  8. self.__setattr__ = self.add_handler
  9. def add_handler(self, name, func):
  10. """
  11. Add a handler to the OpenADRServer.
  12. """
  13. map = {'on_created_event': EventService,
  14. 'on_request_event': EventService,
  15. 'on_create_report': ReportService,
  16. 'on_created_report': ReportService,
  17. 'on_request_report': ReportService,
  18. 'on_update_report': ReportService,
  19. 'on_poll': PollService,
  20. 'on_query_registration': RegistrationService,
  21. 'on_create_party_registration': RegistrationService,
  22. 'on_cancel_party_registration': RegistrationService}
  23. if name in map:
  24. setattr(map[name], name, staticmethod(func))
  25. else:
  26. raise NameError(f"Unknown handler {name}. Correct handler names are: {map.keys()}")