diff options
| author | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2025-03-14 09:14:11 +0100 | 
|---|---|---|
| committer | Elena ``of Valhalla'' Grandi <valhalla@trueelena.org> | 2025-03-14 09:14:11 +0100 | 
| commit | 7fa4fb1c86067b9a7e4f8923e26744dbf0f43017 (patch) | |
| tree | 236028bc61c7663f640f474374eddeef902538a9 | |
| parent | 9ad87e3baa2b19303e05abaf2ae93ea0651e2d97 (diff) | |
Clock face with hardcoded timezone
| -rw-r--r-- | gd_clock.py | 36 | 
1 files changed, 35 insertions, 1 deletions
diff --git a/gd_clock.py b/gd_clock.py index c3a91dc..09d7412 100644 --- a/gd_clock.py +++ b/gd_clock.py @@ -1,11 +1,13 @@  import board  import json  import os +import rtc  import time  import wifi  import adafruit_connection_manager  import adafruit_minimqtt.adafruit_minimqtt as MQTT +import adafruit_ntp  import colours  import neopixel @@ -75,9 +77,34 @@ class StatusRing:  status_ring = StatusRing() +class ClockFace: +    offset_hours = 1 +    offset_min = 0 + +    def start(self, clock): +        print("Starting clock face mode") +        clock.brightness = 0.1 +        pixels.brightness = clock.brightness +        pixels.fill((0, 0, 0)) + +    def loop(self, clock): +        now = time.localtime() +        hour = (now.tm_hour + self.offset_hours) % 12 +        minutes = (now.tm_min + self.offset_min) % 60 // 5 +        pixels.fill((0, 0, 0)) +        if hour == minutes: +            pixels[hour] = (64, 0, 64) +        else: +            pixels[hour] = (0, 0, 64) +            pixels[minutes] = (64, 0, 0) + + +clock_face = ClockFace() + +  class GD_Clock:      brightness = 0.1 -    current_mode = rainbow +    current_mode = clock_face      batteries = {}      def connected(self, client, userdata, flags, rc): @@ -99,6 +126,9 @@ class GD_Clock:          value = payload.get("value", None)          kwargs = payload.get("kwargs", {})          if cmd == "mode": +            if value == "clock": +                self.current_mode = clock_face +                self.current_mode.start(self)              if value == "flashlight":                  self.current_mode = flashlight                  self.current_mode.start(self) @@ -153,6 +183,10 @@ print("Connected to WiFi")  pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio) +ntp = adafruit_ntp.NTP(pool, tz_offset=0, cache_seconds=3600) + +rtc.RTC().datetime = ntp.datetime +  mqtt_client = MQTT.MQTT(      broker=os.getenv('MQTT_HOST'),      socket_pool=pool,  | 
