---
title: epaper tags und andere bildschirmchen
date: "2025-09-15T18:20:00+02:00"
url: "https://wirres.net/articles/epaper-tags-2"
tags: [automatische wohnung, home assistant, automatisierung, epaper, displays, cyd, cheap yellow display, matrix display, ipad]
category: artikel
additional_categories: [wirres.net]
author: felix schwenzel
---

# epaper tags und andere bildschirmchen

im laufe der jahre habe ich in der automatischen wohnung relativ viele bildschirmchen aufgestellt, weil die automatische wohnung nicht nur ohne app und mobiltelefon bedienbar sein soll, sondern auch ausserhalb von apps und mobiltelefonen mit uns kommunizieren können soll.

meine weitaus am häufigsten genutzte information die ich gerne auf einen blick erkennen möchte sind uhrzeit. und datum. deshalb hängt die wohnung voll mit uhren, nicht nur [kuckucksuhren](https://wirres.net/articles/zwei-kuckucksuhren), auch LED-matrix displays. natürlich stehen uhrzeit und datum auch auf handies, armbanduhren, laptops und ipads, aber offensichtlich ist es mir wichtig überall hinsehen zu können um die uhrzeit oder das datum zu erfahren. wenn ich keine lust habe zu schauen, beobachte ich mich erstaunlich oft dass ich im kinderzimmer oder in der küche siri oder snips nach der uhrzeit oder dem datum frage. das ist vor allem praktisch, wenn man mit geschlossenen oder verquollenen augen im bett liegt. gegen den homepod von apple und apples siri kann man viel sagen, aber was der wirklich gut kann ist auch die sehr leise gesprochene frage nach der uhrzeit zu hören und zu beantworten.

noch wichtiger ist mir die zeitumstellungen zweimal im jahr nicht manuell durchführen zu müssen. computer und telefone bekommen das mittlerweile gut alleine hin, aber natürlich auch alle uhren die irgendwie am home assistant hängen. die einzige uhr die ich bei uns noch manuell umstellen muss ist die der microwelle.

![„cheap yellow display“ in einem papkarton, der momentan den regenradar anzeigt. normalerweise (wenn es nicht regnet) werden die temperaturen in küche und hof angezeigt, wenn die spülmaschine läuft, deren restlaufzeit. auch eine wettervorhersage der nächsten paar tage lässt sich aufrufen.](https://wirres.net/media/pages/articles/epaper-tags-2/03eb7b7241-1757910186/img_3922-640x.jpg 'img_3922')

![oben rechts das epaper schildchen zeigte mal doofe sprüche an die aber ohnehin nicht beachtet wurden. vielleicht mach ich da nen luftqualitäts-anzeiger draus. das ipad ist so alt, dass es eigentlich kein home assistant dashboard mehr anzeigen kann. deshalb zeigt es (per VNC) den bildschirm eines kopflosen mac-mini im serverraum an. das dashboard zeigt vor allem wetterdaten an und wird auch beachtet. die regenanzeige ist etwas kryptisch, aber akkurat. moritz ist unser staubsauger-roboter und seit er da ist, putzt der mehr oder weniger automatisch, die steuerung kann also weg. der luftfilter geht auch automatisch an und aus, je nach partikel und geruchslage.](https://wirres.net/media/pages/articles/epaper-tags-2/a3aacc7000-1757910186/img_3924-640x.jpg 'img_3924')

![eine von vier matrix anzeigen bei uns in der wohnung. sie zeigen im ruhezustand die uhrzeit an, dieser hier reagiert auch auf „hey snips“ und zeigt an ob der sprachsassistent, der noch auf snips hört, aber längst home assistant als motor hat, gerade zuhört, denkt oder spricht.](https://wirres.net/media/pages/articles/epaper-tags-2/833285c2a1-1757910186/img_3925-640x.jpg 'img_3925')

![dieses schildchen neben meinem schreibtisch beachte ich tatsächlich recht oft. und es zeigt die nebensächlichkeit der schildchen. kann man überall hinhängen ohne kabelgedöns oder aufwand.](https://wirres.net/media/pages/articles/epaper-tags-2/cf5a1bca85-1757910186/img_3926-640x.jpg 'img_3926')

![auch bei mir am schreibtisch die uhr die ich immer im augenwinkel habe. enorm praktisch. die chinesische, billige LED matrix rechts daneben lässt sich auch via BLE steuern, zeigt aber immer — sehr grobpixelig — mein lieblingsbild von frida und mir. der whisky ist leider alle.](https://wirres.net/media/pages/articles/epaper-tags-2/00b7ba17c0-1757948801/img_3927-640x.jpg 'img_3927')

![auf den IKEA VINDRIKTNING sensor schaut niemand, trotz der beleuchtung, aber er steuert dafür den luftreiniger und überwacht feinpartikel (PM2.5) und geruch (VOC). und temperatur und luftfeutigkeit natürlich.](https://wirres.net/media/pages/articles/epaper-tags-2/59fc427b93-1757910186/img_3928-640x.jpg 'img_3928')

die mehrheit unserer displays braucht eine konstante stromversorgung. displays, sensoren oder aktoren selbst aus esp8266s, esp32s oder arduinos zu bauen ist dank [esphome](https://esphome.io/) wirklich einfach. batteriebetriebene geräte selbst zu bauen ist hingegen vergleichsweise schwer. und meinen ersten selbstgebauten epaper-display hat es auch schnell dahingerafft, entweder weil die treiber nicht gut optimiert waren oder ich einfach zu doof war das alles herstellerspezifisch zu implementieren.

deshalb wurde ich hellhörig als ich hörte, dass man die epaper preisschilder die man mittlerweile überall sieht und bekommt, leicht hacken kann. informationen zu einzelnen preisschildern, ihrer hackability und steuerung werden im [OpenEPaperLink](https://github.com/OpenEPaperLink/OpenEPaperLink) reposititory auf github gesammelt.

so sehr ich die idee mag ausgemusterte oder neue günstige epaper-displays für eigene zwecke zu nutzen, so wenig lust hatte ich die aufzumachen und eigene firmware einzuspielen. im prinzip ist das nicht all zu schwer, aber ich entschied mich den einfacheren weg zu gehen: epaper-schilder zu kaufen, die bereits kompatibel sind.

damals, als ich dafür eine quelle suchte, habe ich die kompatiblen und BLE fähigen schildchen nur bei [alibaba](https://www.alibaba.com/product-detail/Picksmart-ODM-2-9-Inch-3_1600465024063.html) gefunden (damals für ca. $10/stück). der primäre suchbegriff ist „Picksmart“, der produktname bei alibaba lautet:

*Picksmart ODM 2.9 Inch 3 Color Eink Electronic Shelf Label ESL Epaper BLE 5.0 Electronic Price Tag Digital Retail RED Display*

![das schildchen im flur zeigt an wenns (laut regenradar) regent, sonst ein wettersymbol und die aussentemperatur. und natürlich das datum.](https://wirres.net/media/pages/articles/epaper-tags-2/f5036299d9-1757910186/img_3923-640x.jpg 'img_3923')

um die dinger zu steuern braucht man dann aber noch einen zugangspunkt, access point. auch dazu gibt es es tonnenweise doku [bei OpenEPaperLink](https://github.com/OpenEPaperLink/OpenEPaperLink/wiki/Building-an-Access-Point). ich habe mir einen „AP“ aus einen [ESP32-S3](https://de.aliexpress.com/item/1005005755597419.html) mit display und [ESP32-C6](https://de.aliexpress.com/item/1005006306703709.html?spm=a2g0o.order_list.order_list_main.110.13075c5fnHAnEB&gatewayAdapt=glo2deu) gebaut ([spaghetti AP](https://github.com/OpenEPaperLink/OpenEPaperLink/wiki/Beginners-Guide-for-an-easy-to-build-Access-Point-%28aka-spaghetti-AP%29)). den fertig gebauten AP hab ich dann in unseren „serverraum“ gestellt, wo er sich gut mit den drei preisschildern verbinden kann.

![der OpenEPaperLink „spaghetti AP“ im serverraum. theoretisch kann man auf dem auch rummalen oder belibige inhalte anzeigen lassen, aber die sieht im serverraum ja niemand.](https://wirres.net/media/pages/articles/epaper-tags-2/b09873b240-1757913246/img_3929-640x.jpg 'img_3929')

im webinterface des APs kann man bereits inhalte definieren, die auf den epaper-schildchen gezeigt werden können (datum, countdowns, wetter, bilder, kalender, etc.) aber richtg interessant wird das natürlich erst mit home assistant, dort liegen schliesslich alle meine daten, vor allem genau die wetterdaten, die ich auch anzeigen will: regnets? wenn ja, wann genau und wie stark? und die ewige frage: welcher tag ist heute?

die [home assistant integration für den OpenEPaperLink](https://github.com/OpenEPaperLink/Home_Assistant_Integration) hat gerade einen grossen versionssprung hingelegt und kann angeblich auch ohne den AP mit bestimmten tags reden.

> [This release](https://github.com/OpenEPaperLink/Home_Assistant_Integration/releases/tag/2.0.0) introduces support for direct communication with ATC BLE tags via Bluetooth Low Energy (BLE). This means an AP is no longer required for interacting with tags that support BLE.

welche preisschilder das sind habe ich noch nicht recherchiert, meine werden jedenfalls nicht gefunden und ATC BLE bedeutet wohl: tags mit der geflashten/gehackten [ATC custom firmware](https://github.com/atc1441/ATC_TLSR_Paper).

in home assistant kann man mit der integration dann beliebig auf den preisschildern rummalen. so sieht die aktion aus, mit der ich ein wetter-icon, die temperatur und das datum auf die dinger schreibe.

```yml
action: open_epaper_link.drawcustom
target:
  device_id:
    - 0757317ceda12c6b521765bdf6987139
    - bc59cd23287f1d22d3f2d90b5900cdbd
data:
  background: white
  dry-run: false
  ttl: 360
  payload:
    - type: text
      font: ppb.ttf
      x: 198
      "y": 42
      anchor: mm
      color: red
      value: >-
        {{
        ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'][now().weekday()]
        }}
      size: >-
        {% set tagesname =
        ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag']
        [now().weekday()]  %} {% if tagesname|length == 6 %} 48 {% elif
        tagesname|length == 7 %} 41 {% elif tagesname|length == 8 %} 36 {% elif
        tagesname|length == 10 %} 26 {% else %} 26 {% endif %}
    - type: text
      value: >-
        {% set tagesdatum = now().day|string %}  {% set monatsname =
        ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']
        [now().month|int()-1]  %} {{ tagesdatum }}. {{ monatsname }}      
      font: ppb.ttf
      x: 198
      "y": 84
      anchor: mm
      size: 28
      color: black
    - type: icon
      value: >-
        {% set condition = states('weather.dwd_berlin_tegel') %}  {%if
        (condition == "sunny") %}{{"weather-sunny"}} {%elif (condition ==
        "clear-night") %}{{"weather-night"}} {%elif (condition ==
        "cloudy")%}{{"weather-cloudy"}} {%elif (condition ==
        "fair")%}{{"weather-sunny"}} {%elif (condition ==
        "sunny")%}{{"weather-sunny"}} {%elif (condition == "fog")%}
        {{"weather-fog"}} {%elif (condition == "pouring")%}
        {{"weather-pouring"}} {%elif (condition == "heavyrainandthunder")%}
        {{"weather-lightning-rainy"}} {%elif (condition == "heavyrainshowers")%}
        {{"weather-pouring"}} {%elif (condition ==
        "heavyrainshowersandthunder")%}{{"weather-fog"}} {%elif (condition ==
        "heavysleet")%}{{"weather-snowy-heavy"}} {%elif (condition ==
        "heavysleetandthunder")%}{{"weather-snowy-heavy"}} {%elif (condition ==
        "heavysleetshowers")%}{{"weather-snowy-rainy"}} {%elif (condition ==
        "heavysleetshowersandthunder")%}{{"weather-snowy-rainy"}} {%elif
        (condition == "heavysnow")%}{{"weather-snowy-heavy"}} {%elif (condition
        == "heavysnowandthunder")%}{{"wweather-snowy-rainy"}} {%elif (condition
        == "heavysnowshowers")%}{{"weather-snowy-heavy"}} {%elif (condition ==
        "heavysnowshowersandthunder")%}{{"weather-snowy-heavy"}} {%elif
        (condition == "lightrain")%}{{"weather-rainy"}} {%elif (condition ==
        "lightrainandthunder")%}{{"weather-lightning-rainy"}} {%elif (condition
        == "lightrainshowers")%}{{"weather-partly-rainy"}} {%elif (condition ==
        "lightrainshowersandthunder")%}{{"weather-partly-lightning"}} {%elif
        (condition == "lightsleet")%}  {{"weather-snowy-rainy"}} {%elif
        (condition == "lightsleetandthunder")%}{{"weather-snowy-rainy"}} {%elif
        (condition == "lightsleetshowers")%}  {{"weather-snowy-rainy"}} {%elif
        (condition == "lightsnow")%}  {{"weather-snowy"}} {%elif (condition ==
        "lightsnowandthunder")%}{{"weather-snowy"}} {%elif (condition ==
        "lightsnowshowers")%}{{"weather-snowy-rainy"}} {%elif (condition ==
        "lightssleetshowersandthunder")%}{{"weather-snowy-rainy"}} {%elif
        (condition == "lightssnowshowersandthunder")%}{{"weather-snowy-rainy"}}
        {% elif (condition == "partlycloudy") and states("sun.sun") ==
        "above_horizon"%}{{"weather-partly-cloudy"}} {% elif (condition ==
        "partlycloudy") and states("sun.sun") ==
        "below_horizon"%}{{"weather-night-partly-cloudy"}} {% elif (condition ==
        "rainy")%}{{"weather-rainy"}} {%elif (condition ==
        "rainandthunder")%}{{"weather-lightning-rainy"}} {%elif (condition ==
        "rainshowers")%}{{"weather-partly-rainy"}} {%elif (condition ==
        "rainshowersandthunder")%}{{"weather-lightning-rainy"}} {%elif
        (condition == "sleet")%}{{"weather-snowy"}} {%elif (condition ==
        "sleetandthunder")%}{{"weather-snowy"}} {%elif (condition ==
        "sleetshowers")%}{{"weather-snowy"}} {%elif (condition ==
        "sleetshowersandthunder")%}{{"weather-snowy"}} {%elif (condition ==
        "snow")%}{{"weather-snowy"}} {%elif (condition ==
        "snowandthunder")%}{{"weather-snowy"}} {%elif (condition ==
        "snowshowers")%}{{"weather-snowy"}} {%elif (condition ==
        "snowshowersandthunder")%}{{"weather-snowy"}} {%elif (condition ==
        "snowy")%}{{"weather-snowy"}} {% else %} {{"cloud-question"}} {% endif
        %}
      x: 10
      "y": 10
      size: 80
      color: black
    - type: text
      value: "{{ states(\"sensor.temperature_berlin_tegel\") | float(-1) | round(0) }}°"
      font: ppb.ttf
      x: 50
      "y": 104
      size: 32
      color: black
      anchor: mm
```

die epaper schildchen laufen hier jetzt seit oktober 2024 problemlos. die batterien lassen sich tauschen und weil die tags magnetisch sind, lassen sie sich auch überall hinhängen. ich mag die displays sehr, auch weil sie gut ablesbar sind, aber mehr von denen muss ich mir nicht unbedingt kaufen. ausser mir fällt noch was ein, wo sie wirklich nütlzich sein könnten.
