![Afvalwijzer](https://i0.wp.com/rouwette.com/wp-content/uploads/2022/12/afvalkalender.png?resize=800%2C540&ssl=1)
Afvalwijzer
Weer vergeten op de afvalwijzer te kijken wanneer het papier aan de straat moest staan 🤔.
Dat moet anders kunnen. Ontvang een WhatsApp bericht of andere notificatie.
Dit werkt alleen in Nederland.
HACS
Installeer de integratie Afvalwijzer en frontend auto-entities. Die vind je gewoon in de HACS lijsten.
Er zijn veel afvalverwerkers ondersteund.
Onder andere:
mijnafvalwijzer, afvalstoffendienstkalender (all), rova, ACV, almere, areareiniging, avalex, avri, BAR, hellendoorn, meerlanden, meppel, RAD, twentemilieu, waardlanden, westland, ximmio, reinis, alkmaar, alphenaandenrijn, berkelland, blink, cranendonck, cyclus, DAR, denhaag, gad, hvc, lingewaard, middelburgngen, montfoort, peelenmaas, prezero, purmerend, RWM, schouwenand, spaarnelanden, sudwestfryslan, suez, venray, voorschoten, waalre, ZRD, eemsdelta (iCalendar), RD4, deafvalapp
Na installatie start je Home Assistant opnieuw op.
Configuration.yaml
Pas de configuration.yaml aan en voeg deze toe. Pas minimaal de 3 verplichte regels toe met jouw gegevens.
sensor: - platform: afvalwijzer provider: mijnafvalwijzer # (verplicht, default = mijnafvalwijzer) kies een afval verwerker postal_code: 1111AA # (verplicht, default = '') street_number: 11 # (verplicht, default = '') # suffix: '' # (optional, default = '') # exclude_pickup_today: true # (optional, default = true) to take or not to take Today into account in the next pickup. # default_label: geen # (optional, default = geen) label if no date found # id: '' # (optional, default = '') Voor als je meerdere afval verwerkers wilt # exclude_list: '' # (optional, default = '') comma separated list of wast types (case ignored). F.e. "papier, gft"
Plaatjes als icoontjes
De plaatjes sla je op in de www map, ik heb een aantal plaatjes die je gratis kunt downloaden.
customize.yaml aanpassen
-
Geef je iets?€ 1,00
-
afvalwijzer€ 0,00
-
Kopje koffie€ 2,76
sensor.afvalwijzer_pmd: entity_picture: /local/pmd.png friendly_name: PMD sensor.afvalwijzer_takken: entity_picture: /local/takken.png friendly_name: Takken sensor.afvalwijzer_restafval: entity_picture: /local/rest.png friendly_name: Rest sensor.afvalwijzer_papier: entity_picture: /local/papier.png friendly_name: Papier sensor.afvalwijzer_kerstbomen: entity_picture: /local/kerst.png friendly_name: Kerst sensor.afvalwijzer_gft: entity_picture: /local/gft2.png friendly_name: GFT sensor.afvalwijzer_today: friendly_name: Vandaag sensor.afvalwijzer_tomorrow: friendly_name: Morgen sensor.afvalwijzer_next_item: friendly_name: Next pickup item sensor.afvalwijzer_next_in_days: friendly_name: Next pickup in days input_boolean.waste_reminder: icon: mdi:reminder
![afvalwijzer](https://i0.wp.com/rouwette.com/wp-content/uploads/2022/12/afval.png?resize=458%2C123&ssl=1)
Herstart Home Assistant en om bovenstaande icons in de LoveLace te krijgen gebruik je de volgende kaart-code.
type: custom:auto-entities card: type: glance filter: include: - entity_id: sensor.afvalwijzer_gft - entity_id: sensor.afvalwijzer_papier - entity_id: sensor.afvalwijzer_pmd - entity_id: sensor.afvalwijzer_restafval - entity_id: sensor.afvalwijzer_takken sort: method: state attribute: Days_until reverse: false
Automation
Wil jij berichten krijgen op de dag voordat het afval aan de straat moet staan?
Pas nogmaals de configuration.yaml aan.
input_boolean: waste_moved: name: Waste has been moved initial: 'off' icon: mdi:delete-empty waste_reminder: name: Waste reminder enabled initial: 'on'
Maak 3 automations aan
alias: Reset waste notification trigger: - platform: state entity_id: input_boolean.waste_moved to: "on" for: hours: 12 action: - service: input_boolean.turn_off entity_id: input_boolean.waste_moved - service: input_boolean.turn_on entity_id: input_boolean.waste_reminder
alias: Mark waste as moved from notification trigger: - platform: event event_type: ios.notification_action_fired event_data: actionName: MARK_WASTE_MOVED action: - service: input_boolean.turn_on entity_id: input_boolean.waste_moved - service: input_boolean.turn_on entity_id: input_boolean.trash_outside
Krijg tussen 18:00 en 23:00 elk uur een melding op je telefoon, in mijn geval via Whatsapp.
alias: Waste has not been moved trigger: - platform: time_pattern hours: /1 condition: - condition: and conditions: - condition: state entity_id: input_boolean.waste_moved state: "off" - condition: state entity_id: input_boolean.waste_reminder state: "on" - condition: time after: "18:00:00" before: "23:00:00" - condition: template value_template: "{{ states('sensor.afvalwijzer_tomorrow') != 'Geen' }}" action: - service: notify.mobile_app_ #zend het naar een HA App op een telefoon data: title: Afval message: >- Het is vandaag - {{ now().strftime("%d-%m-%Y") }}. Afvaltype(n): {{ states.sensor.afvalwijzer_tomorrow.state }} wordt opgehaald op: {{ (as_timestamp(now()) + (24*3600)) | timestamp_custom("%d-%m-%Y", True) }}! data: push: badge: 0 category: afval enabled: true - service: notify.whatsapp #Callmebot methode data: title: Afval message: >- Het is vandaag - {{ now().strftime("%d-%m-%Y") }}. Afvaltype(n): {{ states.sensor.afvalwijzer_tomorrow.state }} wordt opgehaald op: {{ (as_timestamp(now()) + (24*3600)) | timestamp_custom("%d-%m-%Y", True) }}! data: push: badge: 0 category: afval
Gebruik je de Gratis WhatsApp Add-on? Dan heb je onderstaande service nodig.
service: whatsapp.send_message data: clientId: default to: 316<rest van je nummer>@s.whatsapp.net body: text: >- Het is vandaag - {{ now().strftime("%d-%m-%Y") }}. Afvaltype(n): {{ states.sensor.afvalwijzer_tomorrow.state }} wordt opgehaald op: {{ (as_timestamp(now()) + (24*3600)) | timestamp_custom("%d-%m-%Y", True) }}!
Je wilt natuurlijk geen melding krijg voor als de container niet aan de weg hoeft of hij er al staat.
Je zet dan simpel het schuifje aan van “Afval staat al buiten”, de melding krijg je nu niet meer, de sensor wordt na 12 uur automatisch weer uit gezet.
type: entities entities: - entity: input_boolean.waste_reminder name: Afval melding staat - entity: input_boolean.waste_moved name: Afval staat al buiten
![Afvalwijzer staat al buiten](https://i0.wp.com/rouwette.com/wp-content/uploads/2022/12/Aval-meding.png?resize=300%2C69&ssl=1)
Anders geschreven
Heb je liever een tekst als “volgende week maandag” naast de datum sensors?
Plaats onderstaande code in sensor.yaml of onder het kopje sensor, let op de spaties:
- platform: template sensors: papier_dagen_tot_afhaal: attribute_templates: numeric_days: "{{ state_attr('sensor.afvalwijzer_papier', 'days_until_collection_date') }}" value_template: > {%- set sensor = 'sensor.afvalwijzer_papier' %} {%- set collection_date = as_local(as_datetime(state_attr(sensor, 'year_month_day_date'))).date() %} {%- set days = ['maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag' ] %} {%- set days_until = state_attr(sensor, 'days_until_collection_date') %} {% set ws = (days_until / 7) | int %} {% set w = 'een' if ws < 0 else ws %} {% set wk = 'week' if w < 2 else 'weken' %} {%- if days_until <= 1 %} {{ ['Vandaag', 'Morgen'][days_until] }} {%- elif days_until < 7 - now().isoweekday() %} {{ days[collection_date.weekday()] | title }} {%- elif days_until < 14 - now().isoweekday() %} {{ 'Volgende week ' ~ days[collection_date.weekday()] }} {%- else %} {{ days[collection_date.weekday()] | title }} over {%- if w == 1 %} {{'een'}}{% else %} {{ w }}{%- endif %} {{ wk }} {%- endif %} friendly_name: Dagen tot papier restafval_dagen_tot_afhaal: attribute_templates: numeric_days: "{{ state_attr('sensor.afvalwijzer_restafval', 'days_until_collection_date') }}" value_template: > {%- set sensor = 'sensor.afvalwijzer_restafval' %} {%- set collection_date = as_local(as_datetime(state_attr(sensor, 'year_month_day_date'))).date() %} {%- set days = ['maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag' ] %} {%- set days_until = state_attr(sensor, 'days_until_collection_date') %} {% set ws = (days_until / 7) | int %} {% set w = 'een' if ws < 0 else ws %} {% set wk = 'week' if w < 2 else 'weken' %} {%- if days_until <= 1 %} {{ ['Vandaag', 'Morgen'][days_until] }} {%- elif days_until < 7 - now().isoweekday() %} {{ days[collection_date.weekday()] | title }} {%- elif days_until < 14 - now().isoweekday() %} {{ 'Volgende week ' ~ days[collection_date.weekday()] }} {%- else %} {{ days[collection_date.weekday()] | title }} over {%- if w == 1 %} {{'een'}}{% else %} {{ w }}{%- endif %} {{ wk }} {%- endif %} friendly_name: Dagen tot restafval gft_dagen_tot_afhaal: attribute_templates: numeric_days: "{{ state_attr('sensor.afvalwijzer_gft', 'days_until_collection_date') }}" value_template: > {%- set sensor = 'sensor.afvalwijzer_gft' %} {%- set collection_date = as_local(as_datetime(state_attr(sensor, 'year_month_day_date'))).date() %} {%- set days = ['maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag' ] %} {%- set days_until = state_attr(sensor, 'days_until_collection_date') %} {% set ws = (days_until / 7) | int %} {% set w = 'een' if ws < 0 else ws %} {% set wk = 'week' if w < 2 else 'weken' %} {%- if days_until <= 1 %} {{ ['Vandaag', 'Morgen'][days_until] }} {%- elif days_until < 7 - now().isoweekday() %} {{ days[collection_date.weekday()] | title }} {%- elif days_until < 14 - now().isoweekday() %} {{ 'Volgende week ' ~ days[collection_date.weekday()] }} {%- else %} {{ days[collection_date.weekday()] | title }} over {%- if w == 1 %} {{'een'}}{% else %} {{ w }}{%- endif %} {{ wk }} {%- endif %} friendly_name: Dagen tot GFT pmd_dagen_tot_afhaal: attribute_templates: numeric_days: "{{ state_attr('sensor.afvalwijzer_pmd', 'days_until_collection_date') }}" value_template: > {%- set sensor = 'sensor.afvalwijzer_pmd' %} {%- set collection_date = as_local(as_datetime(state_attr(sensor, 'year_month_day_date'))).date() %} {%- set days = ['maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag' ] %} {%- set days_until = state_attr(sensor, 'days_until_collection_date') %} {% set w = (days_until / 7) | int %} {% set wk = 'week' if w < 2 else 'weken' %} {%- if days_until <= 1 %} {{ ['Vandaag', 'Morgen'][days_until] }} {%- elif days_until < 7 - now().isoweekday() %} {{ days[collection_date.weekday()] | title }} {%- elif days_until < 14 - now().isoweekday() %} {{ 'Volgende week ' ~ days[collection_date.weekday()] }} {%- else %} {{ days[collection_date.weekday()] | title }} over {%- if w == 1 %} {{'een'}}{% else %} {{ w }}{%- endif %} {{ wk }} {%- endif %} friendly_name: Dagen tot plastic
De bovenstaande code heb ik voor afvalwijzer bijgewerkt en aangepast, de basis komt van de user Toppe op Tweakers
Ook van die sensors kun je het logo aanpassen in de customize.yaml
sensor.gft_dagen_tot_afhaal: entity_picture: /local/gft2.png sensor.papier_dagen_tot_afhaal: entity_picture: /local/papier.png sensor.pmd_dagen_tot_afhaal: entity_picture: /local/pmd.png sensor.restafval_dagen_tot_afhaal: entity_picture: /local/rest.png
Handig! kun je via Whatsapp ook antwoorden dat het afval al buiten staat?
Hoi Johan,
Dat is mij nog niet via WhatsApp gelukt, het antwoord komt namelijk op de telefoon terecht met dat nummer.
Waar kun je die plaatjes downloaden? Ik zie geen link in je post
Je hebt gelijk, de download plugin crasht nog wel eens 🙁
Het zou nu weer moeten wwerken.
Hoi,
Ik wil de customize.yaml aanpassen, maar waar vind ik deze? Of moet ik deze map nog aanmaken? Zo ja, waar?
Hoi John,
Ik vermoed dat je de File Editor addon nog niet hebt. Dan kun je na installatie en starten met aanpassen.
Hoi Ivo,
De File editor had ik al geïnstalleerd. Ik weet alleen niet in welke mappen ik dingen moet aanpassen. BV. de “ customise.yaml”.. Ik heb deze map niet. Moet ik deze map aanmaken? Zo ja… waar?
Hoi John,
![Ze staan gewoon in de config map](data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width='465'%20height='218'%20viewBox=%270%200%20465%20218%27%3E%3C/svg%3E)
![new file](data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width='309'%20height='95'%20viewBox=%270%200%20309%2095%27%3E%3C/svg%3E)
![aanmaken](data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width='822'%20height='220'%20viewBox=%270%200%20822%20220%27%3E%3C/svg%3E)
Ze staan beide in de config.
Heb je de customize.yaml nog niet kun je deze aanmaken.
In de configuration.yaml moet onderstaande komen te staan.
Hallo,
ik heb de ‘Anders geschreven’ code toegevoegd aan mijn sensor.yaml maar bij controle van de configuratie krijg ik daarop een foutmelding. Ik vermoed dat het, zoals je aangeeft, ligt aan de spatiëring maar ik weet niet precies wat deze moet zijn. Heb je een tipje hier voor? Momenteel staat de eerste regel ‘- platform: template’ helemaal links uitgelijnd.
Hoi DerRoedie, zo heb ik hem in de sensor.yaml staan (uit de conf.yaml gehaald) Daar staat:
Heb je sensor: wel nog los in je configuration.yaml staan moet deze onder
Gelijke spaties als de eerste sensor regels met je adres gegevens
beste,
ik ben nog vrij nieuw, en als ik de kaart-code invoer geeft hij aan “Custom element doesn’t exist: auto-entities”
hoe kan ik dit verhelpen?
Hoi Henri, heb je ha meerdere keren herstart tijdens de installatie?
Probeer nog een herstart en crtl+F5 (harde refresh) op je computer.
Groeten Ivo
Ik krijg als er niks wordt opgehaald de volgende dag wel een melding dat None wordt opgehaald de volgende dag. Doe ik iets fout?
Hoi Robert,
Verander “Geen” eens naar “geen” in de automation Waste has not been moved (regel 18)
Groeten,
Ivo
Gedaan, ik kijk even aan
Het is (uit)eindelijk gelukt met ‘none’.
Ik heb het werkend gekregen, met uitzondering van de afbeeldingen en de mdi pictures.
Dit is mijn eerste HA project. Enig idee waar ik de fout zou kunnen zoeken.
Heb je bijvoorbeeld
sensor.afvalwijzer_pmd:
entity_picture: /local/pmd.png
friendly_name: PMD
in je customize.yaml staan? Dan heb je geen mdi nodig
Ivo,
Dank voor je reactie.
Ik heb dit idd op deze wijze in de customize.yaml staan.
Het bovenste deel is nu dus compleet.
Het enige wat nog niet lukt is het onderste deel, de ophaaldagen.
Ik zie daar op de 1e regel wat er opgehaald gaat worden,
Dan een grote wit ruimte waar volgens mij afbeeldingen/mdi moeten staan
en vervolgens een regel met de ophaal data.