XIAO 7.5" ePaper Panel - Home Assistant Dashboard

Is there a way to do this without using Puppet? For instance, right now I am using a simple temperature forecast and time display. I am making calls to entity_id, for example:

text_sensor:
 -platform: homeassistant
  entity_id: weather.home
  id: myWeather

display:
  - platform: waveshare_epaper
    id: epaper_display
    model: 7.50inv2
    cs_pin: GPIO44
    dc_pin: GPIO10
    reset_pin: GPIO38
    busy_pin:
      number: GPIO4
      inverted: true
    update_interval: never
    lambda: |-
       // 1. Display the title "Weather"
        it.printf(left_center_x, 110, id(mid_font),
TextAlign::TOP_CENTER, "Weather");

        // 2. Get the weather condition and select the corresponding icon
        std::string weather_condition = id(myWeather).state;
        std::string weather_icon = "\U000F0599"; // Default icon
(sunny), as a fallback for unknown states

        if (weather_condition == "partlycloudy") {
          weather_icon = "\U000F0595"; // weather-partly-cloudy
        } else if (weather_condition == "cloudy") {
          weather_icon = "\U000F0F2F"; // weather-cloudy
        } else if (weather_condition == "rainy") {
          weather_icon = "\U000F0597"; // weather-rainy
        } else if (weather_condition == "snowy") {
          weather_icon = "\U000F0598"; // weather-snowy
        } else if (weather_condition == "windy") {
          weather_icon = "\U000F059B"; // weather-windy
        } else if (weather_condition == "fog") {
          weather_icon = "\U000F0594"; // weather-fog
        } else if (weather_condition == "lightning") {
          weather_icon = "\U000F0596"; // weather-lightning
        }
        // Display the weather icon
        it.printf(left_center_x, 240, id(weather_icon_font),
TextAlign::CENTER, "%s", weather_icon.c_str());

code credit to Seeed Studio Wiki