 
   display.updatePartOrFull();
   displayUpdated = true;
+  systemState.cyclesWithoutShow = 0;
 }
 
 void updateVaporPressure(TH *th)

SystemState systemState;
TH localData;

ADC_MODE(ADC_VCC);

void setup()
{

    boolean internalIsToBeShown = systemState.displayedInternalTemperature == -100;

    if (!internalIsToBeShown) {
      if (systemState.cyclesWithoutShow > cyclesWithoutUpdateThreshold) {
        Serial.println("Update after no shows");
        internalIsToBeShown = true;
      } else {
        TH lastInternalData;
        lastInternalData.temperature = systemState.displayedInternalTemperature;
        lastInternalData.humidity = systemState.displayedInternalHumidity;
        updateVaporPressure(&lastInternalData);
  
        if (abs(systemState.displayedInternalTemperature - localData.temperature) > 0.21
            || abs(lastInternalData.vaporPressure - localData.vaporPressure) > 0.29) {
            internalIsToBeShown = true;
  
            Serial.print("Updating because of difference ");
            Serial.println(abs(systemState.displayedInternalTemperature - localData.temperature));
        } else {
          Serial.println("No update. No external data and no internal change.");
          // NOTE the "update at least every X tries" is handled indirectly by the external source
        }
      }
    }

