     systemState = systemStateFromRtc;
   }
 
+  if (!bme.begin()) {
+    Serial.println("No BME!");
+  } else {
+    bme_ok = true;
+    delay(100); // Allow things to settle after begin()
+
+    if (determineLocalTemperature) {
+      determineLocalTemperature = false;
+  
+      localData.dataValid = false;
+      
+      if (bme_ok) {
+        float t = bme.readTemperature() - 1;
+        float h = bme.readHumidity();
+  
+        if (isnan(t) || isnan(h)) {
+          Serial.println("First local temp read was invalid");
+          delay(100);
+          t = bme.readTemperature() - 1;
+          h = bme.readHumidity();
+        }
+  
+        Serial.println(t);
+  
+        bme.setSampling(Adafruit_BME280::MODE_FORCED); // power down
+     
+        if (!isnan(t) && !isnan(h) && t > -100 && t < 100) {
+          localData.dataValid = true;
+          localData.temperature = round(t * 5) / 5.0f;
+          localData.humidity = round(h * 5) / 5.0f;
+  
+          updateVaporPressure(&localData);
+        } else {
+          localData.dataValid = false;
+        }
+      }
+    }
+  
+    // TODO blank values if not up to date (> 5 minutes?)
+  }
+  
+  //displayStateValid = false;
+
+  // TODO / NOTE this will destroy communication with BME; thus temperature is alreay and finally read above
+  
   display.initWave29(displayStateValid ? &displayState : NULL);
   display.setRotation(1);
 

  Serial.begin(115200);
  Serial.println(" Setup"); // Most importantly: move to a new line after boot message

/*
  Serial.print("Chip id ");
  Serial.print(ESP.getChipId());
  Serial.print(" Flash size ");
  Serial.print(ESP.getFlashChipRealSize());
  Serial.print(" Vcc ");
  Serial.println(ESP.getVcc());
  */
  
  DisplayStateWrapper displayState;
  bool displayStateValid = displayState.readFromRtc(1, sizeof(DisplayStateWrapper));

  bool shouldSleepNow = millis() - systemStart > systemAwakeSeconds * 1000;

  if (shouldSleepNow && !displayUpdated) {
    boolean internalIsToBeShown = true;
    /*
    boolean internalIsToBeShown = systemState.displayedInternalTemperature == -100;

    if (!internalIsToBeShown) {
