 }
 
 
-
-/* SIMPLE MIXER */
-// add rgb and clamp
-
-
-
-
-
 /* APP */
 ClockPositions positions;
 ClockSegments  segments(strip, positions);
 
 void setup ()
 {
-  Time.zone(+1);
+  Time.zone(+1); // We are in Norway
   strip.begin ();
   strip.show (); // Initialize all pixels to 'off'
   
-  // Dim on board LED
+  // Dim on board LED - it is way too bright
   RGB.control(true);
-  RGB.color(50, 0, 0);
-  
-  request.hostname = "www.timeapi.org";
-  request.port = 80;
-  request.path = "/utc/now";
-}
+  RGB.color(20, 0, 0);
+  }
 
 
 void loop ()
 {
+  // Check if we have summer or winter (normal) DST time
+  if (IsDst(Time.day(), Time.month(), Time.weekday())) {
+    //We ard saving daylight - It is Summertime
+    Time.zone(+2);
+  } else {
+    //We are NOT saving daylight - It is Wintertime and this is the normal
+    Time.zone(+1);
+  }
   positions.update ();
   segments.draw ();
 }
 
-
+bool IsDst(uint8_t day, uint8_t month, uint8_t dow)
+{
+  if (month < 3 || month > 10)  return false; 
+  if (month > 3 && month < 10)  return true; 
+
+  uint8_t previousSunday = day - dow;
+
+  if (month == 3) return previousSunday >= 25;
+  if (month == 10) return previousSunday < 25;
+
+  return false; // this line never gonna happend
+}
+

uint32_t off_color_strong    = strip.Color (  0,  1,  0);


/* TODO 0.0 to 1.0 percent between current and next value. for color fading */
/* or event based lerping? */

/* TODO gamut values from goggles */
/* TODO smooth sub pixel rendering of bar/pixel ends (careful to avoid 50% average brightness in middle for a pixel */


/* CLOCK */
class ClockPositions
{

#define PIXEL_COUNT 12
#define PIXEL_PIN A7
#define PIXEL_TYPE WS2812B

// From adaFruit NEOPIXEL goggles example: Gamma correction improves appearance of midrange colors
const uint8_t gamma[] = {
