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);
}