Waste Collection 2025 - OpenEPaperLink/Home_Assistant_Integration GitHub Wiki

There where some changes with the update of the integration. My examples is running every 8 hours and generating a picture. You have to replace the sensors for your waste.

alias: EPaper-Müll
description: ""
triggers:
  - trigger: time_pattern
    hours: /8
conditions: []
actions:
  - action: open_epaper_link.drawcustom
    target:
      device_id: abf32100cd04ddc84801d15d23030dfc
    data:
      background: black
      rotate: 0
      payload:
        - type: line
          fill: red
          width: 3
          x_start: 5
          y_start: 56
          x_end: 121
          y_end: 56
        - type: line
          fill: red
          width: 3
          x_start: 168
          y_start: 56
          x_end: 290
          y_end: 56
        - type: line
          fill: red
          width: 3
          x_start: 148
          y_start: 3
          x_end: 148
          y_end: 34
        - type: line
          fill: red
          width: 3
          x_start: 148
          y_start: 60
          x_end: 148
          y_end: 123
        - type: rectangle
          outline: black
          fill: >-
            {{'black' if states('sensor.restmuell') == 'unknown' or
            states('sensor.restmuell') | int > 1 else 'red' }}
          width: 1
          x_start: 5
          y_start: 3
          x_end: 144
          y_end: 52
        - type: text
          value: Restmüll
          font: ppb.ttf
          x: 10
          "y": 8
          size: 18
          color: >-
            {{'white' if states('sensor.restmuell') == 'unknown' or
            states('sensor.restmuell') | int > 1 else 'white' }}
        - type: text
          value: >-
            {% if states('sensor.restmuell') == 'unknown' %}Unknown{% elif
            states('sensor.restmuell') | int == 0 %}Heute{% elif
            states('sensor.restmuell') | int == 1 %}Morgen{% else
            %}{{states('sensor.restmuell')}} Tage{% endif %}
          font: ppb.ttf
          x: 8
          "y": 33
          size: 18
          color: >-
            {{'white' if states('sensor.restmuell') == 'unknown' or
            states('sensor.restmuell') | int > 1 else 'white' }}
        - type: rectangle
          outline: black
          fill: >-
            {{'black' if states('sensor.papiertonne') == 'unknown' or
            states('sensor.papiertonne') | int > 1 else 'red' }}
          width: 1
          x_start: 152
          y_start: 3
          x_end: 290
          y_end: 52
        - type: text
          value: Papier
          font: ppb.ttf
          x: 180
          "y": 8
          size: 18
          color: >-
            {{'white' if states('sensor.papiertonne') == 'unknown' or
            states('sensor.papiertonne') | int > 1 else 'white' }}
        - type: text
          value: >-
            {% if states('sensor.papiertonne') == 'unknown' %}Unknown{% elif
            states('sensor.papiertonne') | int == 0 %}Heute{% elif
            states('sensor.papiertonne') | int == 1 %}Morgen{% else
            %}{{states('sensor.papiertonne')}} Tage{% endif %}
          font: ppb.ttf
          x: 180
          "y": 33
          size: 18
          color: >-
            {{'white' if states('sensor.papiertonne') == 'unknown' or
            states('sensor.papiertonne') | int > 1 else 'white' }}
        - type: rectangle
          outline: black
          fill: >-
            {{'black' if states('sensor.gelbetonne') == 'unknown' or
            states('sensor.gelbetonne') | int > 1 else 'red' }}
          width: 1
          x_start: 5
          y_start: 60
          x_end: 144
          y_end: 107
        - type: text
          value: Gelbe Tonne
          font: ppb.ttf
          x: 10
          "y": 70
          size: 18
          color: >-
            {{'white' if states('sensor.gelbetonne') == 'unknown' or
            states('sensor.gelbetonne') | int > 1 else 'white' }}
        - type: text
          value: >-
            {% if states('sensor.gelbetonne') == 'unknown' %}Unknown{% elif
            states('sensor.gelbetonne') | int == 0 %}Heute{% elif
            states('sensor.gelbetonne') | int == 1 %}Morgen{% else
            %}{{states('sensor.gelbetonne')}} Tage{% endif %}
          font: ppb.ttf
          x: 10
          "y": 90
          size: 18
          color: >-
            {{'white' if states('sensor.gelbetonne') == 'unknown' or
            states('sensor.gelbetonne') | int > 1 else 'white' }}
        - type: rectangle
          outline: black
          fill: >-
            {{'black' if states('sensor.gelbetonne') == 'unknown' or
            states('sensor.gelbetonne') | int > 1 else 'red' }}
          width: 1
          x_start: 152
          y_start: 60
          x_end: 290
          y_end: 107
        - type: text
          value: Biotonne
          font: ppb.ttf
          x: 180
          "y": 70
          size: 18
          color: >-
            {{'white' if states('sensor.papiertonne') == 'unknown' or
            states('sensor.papiertonne') | int > 1 else 'white' }}
        - type: text
          value: >-
            {% if states('sensor.biotonne') == 'unknown' %}Unknown{% elif
            states('sensor.biotonne') | int == 0 %}Heute{% elif
            states('sensor.biotonne') | int == 1 %}Morgen{% else
            %}{{states('sensor.biotonne')}} Tage{% endif %}
          font: ppb.ttf
          x: 180
          "y": 90
          size: 18
          color: >-
            {{'white' if states('sensor.biotonne') == 'unknown' or
            states('sensor.biotonne') | int > 1 else 'white' }}
        - type: icon
          value: circle
          x: 113
          "y": 20
          size: 70
          color: black
        - type: icon
          value: trash-can
          x: 123
          "y": 30
          size: 50
          color: >-
            {{ 'red' if (([(14 if states('sensor.abfallrestmuell') == 'unknown'
            else states('sensor.abfallrestmuell')),(14 if
            states('sensor.papiertonne') == 'unknown' else
            states('sensor.papiertonne')),(14 if states('sensor.biotonne') ==
            'unknown' else states('sensor.biotonne')),(14 if
            states('sensor.gelbetonne') == 'unknown' else
            states('sensor.gelbetonne')) ]) | min ) | int < 2 else 'white' }}
        - type: rectangle
          outline: red
          fill: white
          width: 2
          x_start: 1
          y_start: 110
          x_end: 293
          y_end: 126
        - type: text
          value: "{{ states('sensor.0000021C60873B1F_temperature') | string }} °"
          font: ppb.ttf
          x: 265
          "y": 114
          size: 13
          color: black
        - type: icon
          value: thermometer
          x: 250
          "y": 111
          size: 13
          color: red
        - type: icon
          value: battery-medium
          x: 3
          "y": 112
          size: 13
          color: red
        - type: text
          value: >-
            {{ states('sensor.0000021c60873b1f_battery_percentage') | string }}
            %
          font: ppb.ttf
          x: 20
          "y": 114
          size: 13
          color: black
        - type: icon
          value: wifi
          x: 60
          "y": 111
          size: 13
          color: red
        - type: text
          value: "{{ states('sensor.0000021c60873b1f_rssi') | string }} dB"
          font: ppb.ttf
          x: 77
          "y": 114
          size: 13
          color: black
        - type: icon
          value: refresh
          x: 130
          "y": 111
          size: 13
          color: red
        - type: text
          value: "{{ now().strftime('%d.%m. %H:%M') }}"
          font: ppb.ttf
          x: 150
          "y": 114
          size: 13
          color: black
mode: single