{"id":460,"date":"2026-02-16T21:13:24","date_gmt":"2026-02-16T20:13:24","guid":{"rendered":"https:\/\/pcgsm.nl\/ohh\/?p=460"},"modified":"2026-02-16T21:53:53","modified_gmt":"2026-02-16T20:53:53","slug":"een-fool-proof-pushover-meldingssysteem-in-home-assistant","status":"publish","type":"post","link":"http:\/\/pcgsm.nl\/ohh\/2026\/02\/16\/een-fool-proof-pushover-meldingssysteem-in-home-assistant\/","title":{"rendered":"Een Fool\u2011Proof Pushover Meldingssysteem in Home Assistant"},"content":{"rendered":"<p><em>Stap\u2011voor\u2011stap handleiding + volledig script<\/em><\/p>\n<p>In een slim huis draait alles om betrouwbaarheid. Een melding die te laat komt, of helemaal niet, kan het verschil maken tussen op tijd reageren of iets belangrijks missen. Daarom wilde ik mijn meldingssysteem in Home Assistant naar een hoger niveau tillen. Niet alleen een simpel berichtje, maar een volledig geautomatiseerde, foutloze Pushover\u2011melding \u2014 m\u00e9t prioriteiten, camerabeelden, geluiden en een automatische titel.<\/p>\n<p>Tijdens het bouwen ontdekte ik dat veel standaardoplossingen n\u00e9t niet doen wat je wilt. File\u2011selectors werken niet altijd, prioriteit 2 vereist extra parameters, en bijlagen moeten aan strikte voorwaarden voldoen. Daarom besloot ik een eigen script te maken dat:<\/p>\n<ul>\n<li>altijd werkt<\/li>\n<li>geen fouten toestaat<\/li>\n<li>automatisch slimme keuzes maakt<\/li>\n<li>en flexibel genoeg is voor elke situatie<\/li>\n<\/ul>\n<p>In deze handleiding laat ik stap voor stap zien hoe je dit script zelf kunt toevoegen aan Home Assistant. Aan het einde vind je het volledige script dat je direct kunt gebruiken. Hiermee heb je een professioneel, fool\u2011proof meldingssysteem dat je smart home een stuk slimmer maakt.<\/p>\n<hr \/>\n<h2>Waarom een eigen Pushover\u2011script?<\/h2>\n<p>De standaard Pushover\u2011integratie is prima, maar beperkt. Ik wilde:<\/p>\n<ul>\n<li>een melding sturen met <strong>geluid naar keuze<\/strong><\/li>\n<li><strong>prioriteit 2<\/strong> gebruiken voor urgente meldingen<\/li>\n<li>een <strong>afbeelding meesturen<\/strong> uit mijn cameramappen<\/li>\n<li>een <strong>automatische titel<\/strong> wanneer ik er zelf geen invul<\/li>\n<li>een systeem dat <strong>nooit faalt<\/strong>, ook niet als ik een veld vergeet<\/li>\n<\/ul>\n<hr \/>\n<h2>Stap 1 \u2014 Voorbereiding<\/h2>\n<h3>1.1 Zorg dat Pushover werkt in Home Assistant<\/h3>\n<p>Je moet al een notify\u2011service hebben, zoals:<\/p>\n<pre><code>notify.entity_id\n\nZie <a href=\"https:\/\/www.home-assistant.io\/integrations\/pushover\/\" target=\"_blank\" rel=\"noopener\">Pushover - Home Assistant<\/a><\/code><\/pre>\n<p>Pas dit in het script aan als jouw service anders heet.<\/p>\n<h3>1.2 Maak een map voor je camerabeelden<\/h3>\n<p>Gebruik de map:<\/p>\n<pre><code>\/media\/cam_captures\/\n<\/code><\/pre>\n<p>Plaats daar je afbeeldingen, bijvoorbeeld:<\/p>\n<ul>\n<li>1_tuin.jpg<\/li>\n<li>1_voordeur.jpg<\/li>\n<li>2_tuin.jpg<\/li>\n<li>2_voordeur.jpg<\/li>\n<li>3_tuin.jpg<\/li>\n<li>3_voordeur.jpg<\/li>\n<li>4_tuin.jpg<\/li>\n<li>4_voordeur.jpg<\/li>\n<li>poort.jpg<\/li>\n<li>tuin.jpg<\/li>\n<li>voordeur.jpg<\/li>\n<\/ul>\n<hr \/>\n<h2>Stap 2 \u2014 Script toevoegen in Home Assistant<\/h2>\n<ol>\n<li>Ga naar <strong>Instellingen \u2192 Automatiseringen &amp; Sc\u00e8nes \u2192 Scripts<\/strong><\/li>\n<li>Klik op <strong>\u201c+ Script toevoegen\u201d<\/strong><\/li>\n<li>Kies <strong>\u201cScript bewerken in YAML\u201d<\/strong><\/li>\n<li>Verwijder alles wat er staat<\/li>\n<li>Plak het volledige script hieronder<\/li>\n<li>Sla het script op<\/li>\n<\/ol>\n<hr \/>\n<h2>Stap 3 \u2014 Het volledige Pushover\u2011script<\/h2>\n<p><strong>Dit script is fool\u2011proof:<\/strong><\/p>\n<ul>\n<li>Bericht mag niet leeg zijn<\/li>\n<li>Prioriteit heeft standaard waarde 0<\/li>\n<li>Titel wordt automatisch gegenereerd (dagnaam + datum + tijd)<\/li>\n<li>Bijlagen komen uit een dropdown<\/li>\n<li>Priority 2 werkt correct met retry\/expire<\/li>\n<\/ul>\n<pre><code>pushover_melding:\n  alias: \"Pushover melding\"\n  fields:\n    message:\n      name: Bericht\n      selector:\n        text:\n      default: \"\"\n    title:\n      name: Titel\n      selector:\n        text:\n      default: \"\"\n    sound:\n      name: Geluid\n      selector:\n        select:\n          options:\n            - pushover\n            - bike\n            - bugle\n            - cashregister\n            - classical\n            - cosmic\n            - falling\n            - gamelan\n            - incoming\n            - intermission\n            - magic\n            - mechanical\n            - pianobar\n            - siren\n            - spacealarm\n            - tugboat\n            - alien\n            - climb\n            - persistent\n            - echo\n            - updown\n            - vibrate\n            - none\n    priority:\n      name: Prioriteit\n      selector:\n        select:\n          options:\n            - \"-2\"\n            - \"-1\"\n            - \"0\"\n            - \"1\"\n            - \"2\"\n      default: \"0\"\n    url:\n      name: URL\n      selector:\n        text:\n    url_title:\n      name: URL titel\n      selector:\n        text:\n    attachment_file:\n      name: Bijlage kiezen (uit \/media\/cam_captures\/)\n      selector:\n        select:\n          options:\n            - 1_tuin.jpg\n            - 1_voordeur.jpg\n            - 2_tuin.jpg\n            - 2_voordeur.jpg\n            - 3_tuin.jpg\n            - 3_voordeur.jpg\n            - 4_tuin.jpg\n            - 4_voordeur.jpg\n            - poort.jpg\n            - tuin.jpg\n            - voordeur.jpg\n\n  sequence:\n    - condition: template\n      value_template: \"{{ message is string and message | trim != '' }}\"\n\n    - choose:\n        - conditions: &gt;\n            {{ priority | int == 2 and attachment_file is string and attachment_file != '' }}\n          sequence:\n            - service: notify.entity_id\n              data:\n                message: \"{{ message }}\"\n                title: \"{{ title | default(\n                  (now().strftime('%A')\n                    | replace('Monday','maandag')\n                    | replace('Tuesday','dinsdag')\n                    | replace('Wednesday','woensdag')\n                    | replace('Thursday','donderdag')\n                    | replace('Friday','vrijdag')\n                    | replace('Saturday','zaterdag')\n                    | replace('Sunday','zondag')\n                  ) ~ ' ' ~ now().strftime('%d-%m-%Y %H:%M')\n                ) }}\"\n                data:\n                  sound: \"{{ sound }}\"\n                  priority: 2\n                  retry: 30\n                  expire: 300\n                  url: \"{{ url }}\"\n                  url_title: \"{{ url_title }}\"\n                  attachment: \"\/media\/cam_captures\/{{ attachment_file }}\"\n\n        - conditions: \"{{ priority | int == 2 }}\"\n          sequence:\n            - service: notify.home_assistant_peter\n              data:\n                message: \"{{ message }}\"\n                title: \"{{ title | default(\n                  (now().strftime('%A')\n                    | replace('Monday','maandag')\n                    | replace('Tuesday','dinsdag')\n                    | replace('Wednesday','woensdag')\n                    | replace('Thursday','donderdag')\n                    | replace('Friday','vrijdag')\n                    | replace('Saturday','zaterdag')\n                    | replace('Sunday','zondag')\n                  ) ~ ' ' ~ now().strftime('%d-%m-%Y %H:%M')\n                ) }}\"\n                data:\n                  sound: \"{{ sound }}\"\n                  priority: 2\n                  retry: 30\n                  expire: 300\n                  url: \"{{ url }}\"\n                  url_title: \"{{ url_title }}\"\n\n        - conditions: &gt;\n            {{ priority | int != 2 and attachment_file is string and attachment_file != '' }}\n          sequence:\n            - service: notify.home_assistant_peter\n              data:\n                message: \"{{ message }}\"\n                title: \"{{ title | default(\n                  (now().strftime('%A')\n                    | replace('Monday','maandag')\n                    | replace('Tuesday','dinsdag')\n                    | replace('Wednesday','woensdag')\n                    | replace('Thursday','donderdag')\n                    | replace('Friday','vrijdag')\n                    | replace('Saturday','zaterdag')\n                    | replace('Sunday','zondag')\n                  ) ~ ' ' ~ now().strftime('%d-%m-%Y %H:%M')\n                ) }}\"\n                data:\n                  sound: \"{{ sound }}\"\n                  priority: \"{{ priority | int }}\"\n                  url: \"{{ url }}\"\n                  url_title: \"{{ url_title }}\"\n                  attachment: \"\/media\/cam_captures\/{{ attachment_file }}\"\n\n      default:\n        - service: notify.home_assistant_peter\n          data:\n            message: \"{{ message }}\"\n            title: \"{{ title | default(\n              (now().strftime('%A')\n                | replace('Monday','maandag')\n                | replace('Tuesday','dinsdag')\n                | replace('Wednesday','woensdag')\n                | replace('Thursday','donderdag')\n                | replace('Friday','vrijdag')\n                | replace('Saturday','zaterdag')\n                | replace('Sunday','zondag')\n              ) ~ ' ' ~ now().strftime('%d-%m-%Y %H:%M')\n            ) }}\"\n            data:\n              sound: \"{{ sound }}\"\n              priority: \"{{ priority | int }}\"\n              url: \"{{ url }}\"\n              url_title: \"{{ url_title }}\"\n<\/code><\/pre>\n<hr \/>\n<h2>Stap 4 \u2014 Script testen<\/h2>\n<ol>\n<li>Open het script in Home Assistant<\/li>\n<li>Vul een <strong>bericht<\/strong> in (verplicht)<\/li>\n<li>Laat de <strong>titel leeg<\/strong> om de automatische titel te testen, dus vinkje weg halen<\/li>\n<li>Kies een <strong>geluid<\/strong><\/li>\n<li>Kies een <strong>prioriteit<\/strong><\/li>\n<li>Selecteer eventueel een <strong>bijlage<\/strong><\/li>\n<li>Klik op <strong>Uitvoeren<\/strong><\/li>\n<\/ol>\n<p>Je ontvangt nu een nette Pushover\u2011melding met:<\/p>\n<ul>\n<li>jouw bericht<\/li>\n<li>automatische titel (dagnaam + datum + tijd)<\/li>\n<li>gekozen geluid<\/li>\n<li>juiste prioriteit<\/li>\n<li>optioneel een camerabeeld<\/li>\n<\/ul>\n<hr \/>\n<h2>Conclusie<\/h2>\n<p>Met dit script heb je een professioneel, foutloos en flexibel meldingssysteem dat perfect integreert met Home Assistant. Het is ontworpen om altijd te werken, ongeacht welke velden je wel of niet invult. Ideaal voor alarmmeldingen, camerabeelden, deurbelnotificaties en alle andere situaties waarin je snel en betrouwbaar ge\u00efnformeerd wilt worden.<\/p>\n<p>In een automation kun je nu bij <strong>Add action<\/strong>, <strong>script.pushover_melding<\/strong> kiezen en invullen.<\/p>\n\n\n<p><\/p>\n<div class=\"pvc_clear\"><\/div><p id=\"pvc_stats_460\" class=\"pvc_stats all  \" data-element-id=\"460\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"http:\/\/pcgsm.nl\/ohh\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p><div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Stap\u2011voor\u2011stap handleiding + volledig script In een slim huis draait alles om betrouwbaarheid. Een melding die te laat komt, of helemaal niet, kan het verschil maken tussen op tijd reageren of iets belangrijks missen. Daarom wilde ik mijn meldingssysteem in Home Assistant naar een hoger niveau tillen. Niet alleen een simpel berichtje, maar een volledig &hellip; <\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"http:\/\/pcgsm.nl\/ohh\/2026\/02\/16\/een-fool-proof-pushover-meldingssysteem-in-home-assistant\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_460\" class=\"pvc_stats all  \" data-element-id=\"460\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"http:\/\/pcgsm.nl\/ohh\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[17,22],"class_list":["post-460","post","type-post","status-publish","format-standard","hentry","category-geen-categorie","tag-home-assistant","tag-pushover"],"_links":{"self":[{"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/posts\/460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/comments?post=460"}],"version-history":[{"count":1,"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/posts\/460\/revisions"}],"predecessor-version":[{"id":461,"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/posts\/460\/revisions\/461"}],"wp:attachment":[{"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/media?parent=460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/categories?post=460"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pcgsm.nl\/ohh\/wp-json\/wp\/v2\/tags?post=460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}