 
   //drawButton( sliderArea, 0, ILI9341_GREEN ); //debug
 
-  uint16_t ypos = map( tftBrightness, 0, 100, SLIDER_HEIGHT, SLIDER_YPOS );
-  sliderButton = { SLIDER_XPOS - ( SLIDER_WIDTH / 2 ), ypos, SLIDER_WIDTH, 30 };
-
-  snprintf( sliderButton.text, sizeof( sliderButton.text ), "%.0f%%", tftBrightness );
-  drawButton( sliderButton, ILI9341_BLUE, 0 );
-}
+  //print percentage above the slider
+  sliderButton.y = SLIDER_YPOS - 15;
+  snprintf( sliderButton.text, sizeof( sliderButton.text ), " %.0f%% ", tftBrightness ); /* extra spaces to overwrite old value */
+  drawButton( sliderButton, ILI9341_YELLOW, 0, 0, 2 );
+
+  //draw the slider knob
+  uint16_t ypos = map( tftBrightness, 0, 100, SLIDER_HEIGHT + SLIDER_YPOS, SLIDER_YPOS );
+  sliderButton.y = ypos;
+  sliderButton.text[0] = 0;
+  drawButton( sliderButton, 0, ILI9341_BLUE, 0, 0 );
+}
+
+static inline __attribute__((always_inline)) void showIPAddress( button_t area )
+{
+  tft.startWrite();
+  tft.writeFillRect( area.x, area.y, area.w, area.h, ILI9341_BLACK );
+  tft.endWrite();
+
+  tcpip_adapter_ip_info_t ip_info;
+
+  ESP_ERROR_CHECK( tcpip_adapter_get_ip_info( TCPIP_ADAPTER_IF_STA, &ip_info ) );
+  snprintf( area.text, sizeof( area.text ), "%s", ip4addr_ntoa( &ip_info.ip ) );
+  drawButton( area, ILI9341_YELLOW, 0, 0, 2 );
+}
+
+static inline __attribute__((always_inline)) void drawSensors( const bool forceDraw )
+{
+  if ( numberOfFoundSensors )
+  {
+    static float currentTemp[MAX_NUMBER_OF_SENSORS];
+
+    for ( uint8_t thisSensor = 0; thisSensor < numberOfFoundSensors; thisSensor++ )
+    {
+      if ( sensor[ thisSensor ].tempCelcius != currentTemp[ thisSensor ] || forceDraw )
+      {
+        snprintf( tempArea[thisSensor].text, sizeof( tempArea[thisSensor].text ), "%.1f%c", sensor[thisSensor].tempCelcius, char(247) );
+        drawButton( tempArea[thisSensor], TFT_TEMP_COLOR, 0, 0, 2 );
+        currentTemp[ thisSensor ] = sensor[ thisSensor ].tempCelcius;
+      }
+    }
+  }
+}

  }
}

static inline __attribute__((always_inline)) void drawButton( struct button_t button, uint16_t color, uint16_t bordercolor )
{
  tft.setTextSize( 2 );
  tft.setTextColor( ILI9341_YELLOW, color );

  if ( color || bordercolor )
  {
    tft.startWrite();

    drawBacklightSlider();
    ledcWrite( TFT_BACKLIGHT_CHANNEL, map( tftBrightness, 0, 100, 0, backlightMaxvalue ) );
    tftClearScreen = false;
    currentLightStatus = lightStatus;
  }

  /* check if tftBrightness has changed */
