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

helpers.py 778B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. import config
  5. import geo
  6. import inspect
  7. import time
  8. class changed_value_indicator(dict):
  9. def __init__(self):
  10. super().__init__(self)
  11. def changed_here(self, topic, key, value):
  12. caller_name = inspect.getmodule(inspect.stack()[1][0]).__name__ + '.' + inspect.stack()[1][3]
  13. key = '::'.join([caller_name, topic, key])
  14. #
  15. rv = self.get(key) != value
  16. self[key] = value
  17. return rv
  18. def now():
  19. return time.mktime(time.localtime())
  20. def sunrise_time(time_offs_min=30):
  21. return time.mktime(geo.sun.sunrise(config.GEO_POSITION)) + time_offs_min * 60
  22. def sunset_time(time_offs_min=-30):
  23. return time.mktime(geo.sun.sunset(config.GEO_POSITION)) + time_offs_min * 60