     Particle.function("open", startOpenOperation);
 
     // Get the open time from EEPROM, set it to default if not saved
-    EEPROM.get(0, openTime);
+    EEPROM.get(0, timeZone);
+    if (timeZone == 0xFFFFFFFF) {
+        // EEPROM was empty -> initialize value
+        timeZone = 0.0;
+    }
+
+    Time.zone(timeZone);
+
+    // Get the open time from EEPROM, set it to default if not saved
+    EEPROM.get(sizeof(timeZone), openTime);
     if (openTime.version != 0) {
         // EEPROM was empty -> initialize default value
         openTime = { 0, 7, 0 };
     }
 
     // Get the reminder time from EEPROM, set it to default if not saved
-    EEPROM.get(sizeof(openTime), reminderTime);
+    EEPROM.get(sizeof(timeZone) + sizeof(openTime), reminderTime);
     if (openTime.version != 0) {
         // EEPROM was empty -> initialize default value
         openTime = { 0, 20, 30 };

volatile bool requestDisplayReminderTime = true;
volatile bool requestOpeningOperation = false;

Display display;
Buzzer buzzer(BUZZERPIN);


    display.setup();

    // Setup timezone
    Time.zone(+1.00);

    // Register the status of the box to Particle Cloud
    switchState = digitalRead(SWITCHPIN);
    Particle.variable("switchState", switchState);

    // Register the configureTime as a cloud function
    Particle.function("timeZone", configureTimeZone);

    // Register the configureTime as a cloud function
    Particle.function("time", configureTime);

    // Register the configureReminderTime as a cloud function
