Inkplate 6 Status display

My fairly straightforward Inkplate project.

The goal was to have a status display in the hallway with actionable information. So to quickly see if the house is locked down, what coat to put on, etc.

The Inkplate is perfect for that. It updates every 30 seconds, which is fast enough. In The end I put all static information in one big 600x800 image. All symbols were captured in the right size (advance export) from the MDI icon site and then converted to black and white using the ImageMagick “convert” command. This is needed, because the icons don’t show otherwise unless you put the panel in grayscale mode.

At the start I had some problems doing the initial flash on the Inkplate, until I discovered that you have to give the flash command first and then press the reset button (on the back) of the Inkplate.

The case is 3D printed (using Inkplates own STL files). Had some quality issues with that, due to printer issues. I ended up sanding case down and painting it with “Vlek weg”, a product to mask stains on whitewashed walls. It dries very quickly (15mins). This does not give a wearproof finish (essentially the same as a wall), but since this is a no-touch display I’m not worried about that.

esphome:
  name: inkplate

esp32:
  board: esp-wrover-kit

logger:
  level: WARN

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

    # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Inkplate Fallback Hotspot"
    password: !secret fallback_password
    ap_timeout: 5min

captive_portal:

ota:
  password: !secret ota_password

api:
  password: !secret api_password
  encryption:
    key: !secret api_encryption

button:
  - platform: restart
    name: "Inkplate Restart"
    id: reboot

switch:
  - platform: template
    name: "Inkplate Partial Updating"
    lambda: return id(inkplate_display).get_partial_updating();
    turn_on_action:
      - lambda: id(inkplate_display).set_partial_updating(true);
    turn_off_action:
      - lambda: id(inkplate_display).set_partial_updating(false);

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Inkplate"
    update_interval: 300s
    icon: mdi:signal
  - platform: homeassistant
    id: temp_outside
    name: "Buitentemperatuur"
    entity_id: sensor.netatmo_mondriaanlaan_tuin_temperature
  - platform: homeassistant
    id: temp_min
    name: "Minimum temperatuur"
    entity_id: sensor.minimum_temperatuur
  - platform: homeassistant
    id: temp_max
    name: "Maximum temperatuur"
    entity_id: sensor.maximum_temperatuur
  - platform: homeassistant
    id: uv_index
    entity_id: sensor.current_uv_index_rounded
    name: "UV index"
  - platform: homeassistant
    id: auto_geladen
    entity_id: sensor.wallbox_portal_added_energy
    name: "Auto geladen"
  - platform: homeassistant
    id: stroom_opgewekt
    entity_id: sensor.zonnepanelen_opgewekt_vandaag
    name: "Stroom opgewekt"
  - platform: homeassistant
    id: salderen_hoog
    entity_id: sensor.salderen_hoog
    name: "Salderen hoog"
  - platform: homeassistant
    id: salderen_laag
    entity_id: sensor.salderen_laag
    name: "Salderen laag"

    
  - platform: homeassistant
    name: "temp woonkamer"
    entity_id: sensor.woonkamer_temperature
    id: temp_woonkamer
  - platform: homeassistant
    name: "temp keuken"
    entity_id: sensor.bijkeuken_temperatuur
    id: temp_keuken
  - platform: homeassistant
    name: "temp hal"
    entity_id: sensor.hal_temperature
    id: temp_hal
  - platform: homeassistant
    name: "temp slaapkamer"
    entity_id: sensor.slaapkamer_temperature
    id: temp_slaapkamer
  - platform: homeassistant
    name: "temp badkamer"
    entity_id: sensor.badkamer_temperature
    id: temp_badkamer
  - platform: homeassistant
    name: "temp kamer BBBB"
    entity_id: sensor.kamer_BBBB_temperature
    id: temp_kamer_BBBB
  - platform: homeassistant
    name: "temp berging 1"
    entity_id: sensor.berging_temperature
    id: temp_berging_1
  - platform: homeassistant
    name: "temp kamer CCCC"
    entity_id: sensor.kamer_CCCC_temperature
    id: temp_kamer_CCCC
  - platform: homeassistant
    name: "temp kamer AAAA"
    entity_id: sensor.kamer_AAAA_temperature
    id: temp_kamer_AAAA

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "Inkplate IP Address"
      id: inkplate_ip
      icon: mdi:ip-network
    mac_address:
      name: "Inkplate MAC Address"
      id: inkplate_mac
      icon: mdi:expansion-card
  - platform: homeassistant
    name: "Regen om"
    id: tijd_regen
    entity_id: sensor.neerslag_voorspelling
    attribute: next_event
  - platform: homeassistant
    name: "Poort"
    entity_id: cover.poort
    id: poort
  - platform: homeassistant
    name: "Garage"
    entity_id: cover.garagedeur
    id: garage
  - platform: homeassistant
    name: "Wallbox"
    id: wallbox
    entity_id: sensor.wallbox_portal_status_description
  - platform: homeassistant
    name: "afval"
    entity_id: sensor.alphenaandenrijn_vandaag
    id: afval_vandaag
    
  - platform: homeassistant
    name: "Locatie CCCC Thuis"
    entity_id: input_text.locatie_CCCC
    id: locatie_CCCC_thuis
  - platform: homeassistant
    name: "Locatie BBBB Thuis"
    entity_id: input_text.locatie_BBBB
    id: locatie_BBBB_thuis
  - platform: homeassistant
    name: "Locatie AAAA Thuis"
    entity_id: input_text.locatie_AAA
    id: locatie_AAA_thuis
 
  - platform: homeassistant
    name: "Locatie CCCC Away"
    entity_id: person.CCCC
    id: locatie_CCCC_away
  - platform: homeassistant
    name: "Locatie BBBB Away"
    entity_id: person.BBBB
    id: locatie_BBBB_away
  - platform: homeassistant
    name: "Locatie AAAA Away"
    entity_id: person.AAAA
    id: locatie_AAAA_away
  - platform: homeassistant
    name: "Fan procent"
    id: fan_procent
    entity_id: fan.cvs_fan
    attribute: percentage


i2c:

mcp23017:
  - id: mcp23017_hub
    address: 0x20

binary_sensor:
  - platform: status
    name: "Inkplate Status"
    id: system_status
    
  - platform: homeassistant
    name: "Schuifpui"
    entity_id: binary_sensor.schuifpui
    id: raam_woonkamer
  - platform: homeassistant
    name: "haldeur"
    entity_id: binary_sensor.haldeur
    id: deur_woonkamer
  - platform: homeassistant
    name: "Licht woonkamer"
    entity_id: light.woonkamer_2
    id: licht_woonkamer

  - platform: homeassistant
    name: "Keukenraam"
    entity_id: binary_sensor.keukenraam
    id: raam_keuken
  - platform: homeassistant
    name: "Licht keuken"
    entity_id: light.keuken_5
    id: licht_keuken

  - platform: homeassistant
    name: "Voordeur"
    entity_id: binary_sensor.voordeur_2
    id: deur_hal
  - platform: homeassistant
    name: "Licht hal"
    entity_id: light.hal_2
    id: licht_hal

  - platform: homeassistant
    name: "Slaapkamerraam"
    entity_id: binary_sensor.slaapkamer
    id: raam_slaapkamer
  - platform: homeassistant
    name: "Slaapkamerdeur"
    entity_id: binary_sensor.deur_slaapkamer
    id: deur_slaapkamer
  - platform: homeassistant
    name: "Licht slaapkamer"
    entity_id: light.slaapkamer_2
    id: licht_slaapkamer
    
  - platform: homeassistant
    name: "Badkamerdeur"
    entity_id: binary_sensor.deur_badkamer
    id: deur_badkamer
  - platform: homeassistant
    name: "Licht badkamer"
    entity_id: light.badkamer_2
    id: licht_badkamer
    
  - platform: homeassistant
    name: "Raam kamer BBBB"
    entity_id: binary_sensor.studeerkamer_BBBB
    id: raam_kamer_BBBB
  - platform: homeassistant
    name: "Deur kamer BBBB"
    entity_id: binary_sensor.deur_kamer_BBBB
    id: deur_kamer_BBBB
  - platform: homeassistant
    name: "Licht kamer BBBB"
    entity_id: light.kamer_BBBB
    id: licht_kamer_BBBB

  - platform: homeassistant
    name: "Raam berging 1"
    entity_id: binary_sensor.berging
    id: raam_berging_1
  - platform: homeassistant
    name: "Deur berging 1"
    entity_id: binary_sensor.haldeur
    id: deur_berging_1
  - platform: homeassistant
    name: "Licht berging 1"
    entity_id: light.berging
    id: licht_berging_1

  - platform: homeassistant
    name: "Raam kamer CCCC L"
    entity_id: binary_sensor.slaapkamer_CCCC_links
    id: raam_kamer_CCCC_l
  - platform: homeassistant
    name: "Raam kamer CCCC R"
    entity_id: binary_sensor.slaapkamer_CCCC_rechts
    id: raam_kamer_CCCC_r   
  - platform: homeassistant
    name: "Licht kamer CCCC"
    entity_id: light.kamer_CCCC_2
    id: licht_kamer_CCCC

  - platform: homeassistant
    name: "Raam kamer AAAA"
    entity_id: binary_sensor.studeerkamer_AAAA
    id: raam_kamer_AAAA
  - platform: homeassistant
    name: "Deur kamer AAAA"
    entity_id: binary_sensor.deur_kamer_AAAA
    id: deur_kamer_AAAA
  - platform: homeassistant
    name: "Licht kamer AAAA"
    entity_id: light.kamer_AAAA
    id: licht_kamer_AAAA

  - platform: homeassistant
    name: "Deur berging 2"
    entity_id: binary_sensor.deur_berging_2
    id: deur_berging_2
  - platform: homeassistant
    name: "Licht berging2"
    entity_id: light.berging_2
    id: licht_berging_2
    
  - platform: homeassistant
    name: "Fan status"
    id: fan_status
    entity_id: fan.cvs_fan
    
  - platform: homeassistant
    name: "Waarschuwing"
    id: waarschuwing
    entity_id: binary_sensor.waarschuwing
    
time:
  - platform: sntp
    id: esptime

font:
- file: "gfonts://Varela+Round"
  id: varela_14
  size: 14
- file: "gfonts://Varela+Round"
  id: varela_30
  size: 30
- file: "gfonts://Varela+Round"
  id: varela_40
  size: 40
  glyphs: ["!","%","<",">","+","=",",","-","_",".",":","°","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]

image:
  - file: "icon/Inkplate.png"
    id: background
    type: BINARY
  - file: "icon/deur.png"
    id: icon_deur
    type: BINARY
  - file: "icon/garage_dicht.png"
    id: icon_garage_dicht
    type: BINARY
  - file: "icon/garage_open.png"
    id: icon_garage_open
    type: BINARY
  - file: "icon/lamp.png"
    id: icon_lamp
    type: BINARY
  - file: "icon/offline.png"
    id: icon_offline
    type: BINARY
  - file: "icon/online.png"
    id: icon_online
    type: BINARY
  - file: "icon/poort_dicht.png"
    id: icon_poort_dicht
    type: BINARY
  - file: "icon/poort_open.png"
    id: icon_poort_open
    type: BINARY
  - file: "icon/raam.png"
    id: icon_raam
    type: BINARY
  - file: "icon/waarschuwing.png"
    id: icon_waarschuwing
    type: BINARY
  - file: "icon/icon_ok.png"
    id: icon_ok
    type: BINARY
  - file: "icon/leeg.png"
    id: icon_leeg
    type: BINARY
  - file: "icon/bgg.png"
    id: icon_bgg
    type: BINARY
  - file: "icon/eerste.png"
    id: icon_eerste
    type: BINARY
  - file: "icon/tweede.png"
    id: icon_tweede
    type: BINARY
  - file: "icon/buiten.png"
    id: icon_buiten
    type: BINARY
  - file: "icon/niet_thuis.png"
    id: icon_afwezig
    type: BINARY
  - file: "icon/icon_lock.png"
    id: icon_locked
    type: BINARY
  - file: "icon/icon_pause.png"
    id: icon_paused
    type: BINARY
  - file: "icon/icon_charging.png"
    id: icon_charging
    type: BINARY
  - file: "icon/icon_power.png"
    id: icon_ready
    type: BINARY
  - file: "icon/icon_wait.png"
    id: icon_wait
    type: BINARY
  - file: "icon/icon_disconnected.png"
    id: icon_disconnected
    type: BINARY
  - file: "icon/icon_battery_full.png"
    id: icon_full
    type: BINARY
  - file: "icon/fan_low.png"
    id: icon_fan_laag
    type: BINARY
  - file: "icon/fan_high.png"
    id: icon_fan_hoog
    type: BINARY
  - file: "icon/gft.png"
    id: icon_gft
    type: BINARY
  - file: "icon/pmd.png"
    id: icon_pmd
    type: BINARY
  - file: "icon/papier.png"
    id: icon_papier
    type: BINARY

display:
- platform: inkplate6
  id: inkplate_display
  greyscale: false
  partial_updating: true
  update_interval: 30s
  full_update_every: 20
  rotation: 270

  ckv_pin: 32
  sph_pin: 33
  gmod_pin:
    mcp23xxx: mcp23017_hub
    number: 1
  gpio0_enable_pin:
    mcp23xxx: mcp23017_hub
    number: 8
  oe_pin:
    mcp23xxx: mcp23017_hub
    number: 0
  spv_pin:
    mcp23xxx: mcp23017_hub
    number: 2
  powerup_pin:
    mcp23xxx: mcp23017_hub
    number: 4
  wakeup_pin:
    mcp23xxx: mcp23017_hub
    number: 3
  vcom_pin:
    mcp23xxx: mcp23017_hub
    number: 5

  lambda: |-
    it.fill(COLOR_ON);

    it.image(0, 0, id(background), COLOR_OFF, COLOR_ON);
    it.strftime(193, 75, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%H:%M", id(esptime).now());
    it.strftime(193, 145, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%d-%m", id(esptime).now());
    if (id(system_status).state) {
     if(id(afval_vandaag).state == "gft") {
        it.image(65, 215, id(icon_gft), COLOR_ON, COLOR_OFF);
      }
      if(id(afval_vandaag).state == "pmd") {
        it.image(65, 215, id(icon_pmd), COLOR_ON, COLOR_OFF);
      }
      if(id(afval_vandaag).state == "papier") {
        it.image(65, 215, id(icon_papier), COLOR_ON, COLOR_OFF);
      }
      if(id(afval_vandaag).state == "None") {
        it.image(65, 215, id(icon_online), COLOR_ON, COLOR_OFF);
      }
    } else {
      it.image(65, 215, id(icon_offline), COLOR_ON, COLOR_OFF);
    }
    if (id(waarschuwing).state) {
      it.image(120, 215, id(icon_waarschuwing), COLOR_ON, COLOR_OFF);
    } else {
      it.image(120, 215, id(icon_ok), COLOR_ON, COLOR_OFF);
    }

    if (id(poort).state == "closed") {
      it.image(65, 285, id(icon_poort_dicht), COLOR_ON, COLOR_OFF);
    } else { 
      it.image(65, 285, id(icon_poort_open), COLOR_ON, COLOR_OFF);
    }
    if (id(garage).state == "closed") {
      it.image(120, 285, id(icon_garage_dicht), COLOR_ON, COLOR_OFF);
    } else { 
      it.image(120, 285, id(icon_garage_open), COLOR_ON, COLOR_OFF);
    }
    
    it.printf(368, 75, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%.1f", id(temp_outside).state);
    it.printf(368, 75, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "°C");
    it.printf(368, 145, id(varela_30), COLOR_OFF, TextAlign::TOP_RIGHT, "%.0f/%.0f", id(temp_min).state, id(temp_max).state);
    it.printf(368, 145, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "°C");
    it.printf(368, 215, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "min");
    switch((int)id(uv_index).state) {
      case 0 ... 2:
        it.print(368, 215, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "60+");
        break;
      case 3 ... 5:
        it.print(368, 215, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "<45");
        break;
      case 6 ... 7:
        it.print(368, 215, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "<25");
        break;
      case 8 ... 10:
        it.print(368, 215, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "<15");
        break;
      case 11 ... 12:
        it.print(368, 215, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "  <10");
        break;
    }
    it.printf(396, 285, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%5s", id(tijd_regen).state.c_str());
    
    it.printf(570, 75, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%.0f", fabs(id(salderen_hoog).state));
    if (id(salderen_hoog).state < 0) {
      it.print(570, 75, id(varela_40), COLOR_OFF, TextAlign::TOP_LEFT, "-");
    }
    it.print(570, 75, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "kWh");
    it.printf(570, 145, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%.0f", fabs(id(salderen_laag).state));
    if (id(salderen_laag).state < 0) {
      it.print(570, 145, id(varela_40), COLOR_OFF, TextAlign::TOP_LEFT, "-");
    }
    it.print(570, 145, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "kWh");
    it.printf(570, 215, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%.0f", id(stroom_opgewekt).state);
    it.print(570, 215, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "kWh");
    it.printf(570, 285, id(varela_40), COLOR_OFF, TextAlign::TOP_RIGHT, "%.0f", id(auto_geladen).state);
    it.print(570, 285, id(varela_14), COLOR_OFF, TextAlign::TOP_LEFT, "kWh");
    if (id(wallbox).state == "Locked") {
      it.image(472, 285, id(icon_locked), COLOR_ON, COLOR_OFF);
    }
    if (id(wallbox).state == "Paused") {
      it.image(472, 285, id(icon_paused), COLOR_ON, COLOR_OFF);
    }
    if (id(wallbox).state == "Charging") {
      it.image(472, 285, id(icon_charging), COLOR_ON, COLOR_OFF);
    }
    if (id(wallbox).state == "Ready") {
      it.image(472, 285, id(icon_ready), COLOR_ON, COLOR_OFF);
    }
    if (id(wallbox).state == "Waiting for car demand") {
      it.image(472, 285, id(icon_full), COLOR_ON, COLOR_OFF);
    }
    if (id(wallbox).state == "Disconnected") {
      it.image(472, 285, id(icon_disconnected), COLOR_ON, COLOR_OFF);
    }
    if (id(wallbox).state == "Waiting in queue by Power Boost") {
      it.image(472, 285, id(icon_wait), COLOR_ON, COLOR_OFF);
    }
    
    if (id(locatie_CCCC_away).state == "home") {
      if (id(locatie_CCCC_thuis).state == "bg") {
        it.image(268, 370, id(icon_bgg), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_CCCC_thuis).state == "1") {
        it.image(268, 370, id(icon_eerste), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_CCCC_thuis).state == "2") {
        it.image(268, 370, id(icon_tweede), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_CCCC_thuis).state == "Buiten") {
        it.image(268, 370, id(icon_buiten), COLOR_ON, COLOR_OFF);
      }
    } else {
      if (id(locatie_CCCC_away).state == "not_home") {
        it.image(268, 370, id(icon_afwezig), COLOR_ON, COLOR_OFF);
      } else {
        it.printf(268, 370, id(varela_40), COLOR_OFF, TextAlign::TOP_LEFT, "%.5s", id(locatie_CCCC_away).state.c_str());
      }
    }
 
    if (id(locatie_BBBB_away).state == "home") {
      if (id(locatie_BBBB_thuis).state == "bg") {
        it.image(65, 370, id(icon_bgg), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_BBBB_thuis).state == "1") {
        it.image(65, 370, id(icon_eerste), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_BBBB_thuis).state == "2") {
        it.image(65, 370, id(icon_tweede), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_BBBB_thuis).state == "Buiten") {
        it.image(65, 370, id(icon_buiten), COLOR_ON, COLOR_OFF);
      }
    } else {
      if (id(locatie_BBBB_away).state == "not_home") {
        it.image(65, 370, id(icon_afwezig), COLOR_ON, COLOR_OFF);
      } else {      
        it.printf(65, 370, id(varela_40), COLOR_OFF, TextAlign::TOP_LEFT, "%.5s", id(locatie_BBBB_away).state.c_str());
      }
    }
 
    if (id(locatie_AAAA_away).state == "home") {
      if (id(locatie_AAAA_thuis).state == "bg") {
        it.image(472, 370, id(icon_bgg), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_AAAA_thuis).state == "1") {
        it.image(472, 370, id(icon_eerste), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_AAAA_thuis).state == "2") {
        it.image(472, 370, id(icon_tweede), COLOR_ON, COLOR_OFF);
      }
      if (id(locatie_AAAA_thuis).state == "Buiten") {
        it.image(472, 370, id(icon_buiten), COLOR_ON, COLOR_OFF);
      }
    } else {
      if (id(locatie_AAAA_away).state == "not_home") {
        it.image(472, 370, id(icon_afwezig), COLOR_ON, COLOR_OFF);
      } else {      
        it.printf(472, 370, id(varela_40), COLOR_OFF, TextAlign::TOP_LEFT, "%.5s",id(locatie_AAAA_away).state.c_str());
      }
    }
    
    if (id(fan_status).state) {
      if (id(fan_procent).state == "50") {
        it.image(550, 450, id(icon_fan_laag), COLOR_OFF, COLOR_ON);
      } else {
        it.image(550, 450, id(icon_fan_hoog), COLOR_OFF, COLOR_ON);
      }
    } else {
      it.image(550, 450, id(icon_leeg), COLOR_ON, COLOR_OFF);
    }
    
    it.printf(30, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_woonkamer).state));
    if (id(raam_woonkamer).state) {
      it.image(10, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(10, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(deur_woonkamer).state) {
      it.image(10, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(10, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_woonkamer).state) {
      it.image(10, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(10, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(90, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_keuken).state));
    if (id(raam_keuken).state) {
      it.image(70, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(70, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_keuken).state) {
      it.image(70, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(70, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(150, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_hal).state));
    if (id(deur_hal).state) {
      it.image(130, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(130, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_hal).state) {
      it.image(130, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(130, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(210, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_slaapkamer).state));
    if (id(raam_slaapkamer).state) {
      it.image(190, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(190, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(deur_slaapkamer).state) {
      it.image(190, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(190, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_slaapkamer).state) {
      it.image(190, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(190, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(270, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_badkamer).state));
    if (id(deur_badkamer).state) {
      it.image(250, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(250, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_badkamer).state) {
      it.image(250, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(250, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(330, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_kamer_BBBB).state));
    if (id(raam_kamer_BBBB).state) {
      it.image(310, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(310, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(deur_kamer_BBBB).state) {
      it.image(310, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(310, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_kamer_BBBB).state) {
      it.image(310, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(310, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(390, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_berging_1).state));
    if (id(raam_berging_1).state) {
      it.image(370, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(370, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(deur_berging_1).state) {
      it.image(370, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(370, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_berging_1).state) {
      it.image(370, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(370, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    
    it.printf(450, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_kamer_CCCC).state));
    if (id(raam_kamer_CCCC_l).state || id(raam_kamer_CCCC_r).state) {
      it.image(430, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(430, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_kamer_CCCC).state) {
      it.image(430, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(430, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    it.printf(510, 570, id(varela_30), COLOR_OFF, TextAlign::TOP_CENTER, "%.0f", round(id(temp_kamer_AAAA).state));
    if (id(raam_kamer_AAAA).state) {
      it.image(490, 630, id(icon_raam), COLOR_ON, COLOR_OFF);
    } else {
      it.image(490, 630, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(deur_kamer_AAAA).state) {
      it.image(490, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(490, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_kamer_AAAA).state) {
      it.image(490, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(490, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }

    if (id(deur_berging_2).state) {
      it.image(550, 690, id(icon_deur), COLOR_ON, COLOR_OFF);
    } else {
      it.image(550, 690, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }
    if (id(licht_berging_2).state) {
      it.image(550, 750, id(icon_lamp), COLOR_ON, COLOR_OFF);
    } else {
      it.image(550, 750, id(icon_leeg), COLOR_OFF, COLOR_ON);
    }


5 Likes