
    
    
    
        
                
    
    
        
                
    
    
        
                
    
    
        
                
    
    
        
            
{"version":"https:\/\/jsonfeed.org\/version\/1","title":"hanjo.dev blog","home_page_url":"https:\/\/hanjo.dev\/de\/blog","feed_url":"https:\/\/hanjo.dev\/de\/blog.json","description":"hanjo.dev blog","author":{"name":"Hanjo"},"items":[{"title":"A magic mirror module to target W\u00fcrzburgs openData API","date_published":"2024-10-13T10:35:00+02:00","id":"https:\/\/hanjo.dev\/de\/blog\/a-magic-mirror--module-to-target-wuerzburgs-opendata-api","url":"https:\/\/hanjo.dev\/de\/blog\/a-magic-mirror--module-to-target-wuerzburgs-opendata-api","content_html":"<p>Building your own magic mirror is a gratifying experience, and the result is an unobtrusive piece of furniture; and a visual part of your smart home. Open source projects such as <a target=\"_blank\" href=\"https:\/\/magicmirror.builders\/\">MagicMirror&sup2;<\/a> may assist you in creating your own custom smart mirror interfaces.<\/p>\n\n<p>It only takes an afternoon to create your own plugin, if your are familiar with JavaScript and Node.js, and takes additional 1-2 hours of testing.<\/p>\n<h2>A MagicMirror&sup2; module idea<\/h2>\n<p>I regularly take out my trash, and from time to time forgot to, or did not know for sure, which type will be disposed at a specific date. What I hoped for, was, that the city I live in exposes a live calendar f.e. a calDAV server, that allows you to access the required data without relying on email, a third party app, and another ecosystem I did not want to subscribe to. Well, the city government had not offered its citizen this service. The ironic thing is: They have a public accessible API, that provides this kind of data.<\/p>\n<h2>Initialize the MagicMirror&sup2; module<\/h2>\n<p>A MagicMirror&sup2; module consists of a core module script, to display the data, and a node helper script, to handle the background tasks required....<\/p>","tags":["featured","JavaScript","MagicMirror","Node.js"],"image":"\/user\/pages\/02.blog\/a-magic-mirror--module-to-target-wuerzburgs-opendata-api\/magicmirror-wuerzburg-opendata.webp"},{"title":"Create a Grav CMS cookie consent plugin using PHP","date_published":"2024-08-08T13:08:00+02:00","id":"https:\/\/hanjo.dev\/de\/blog\/create-grav-cms-php-cookie-consent-plugin","url":"https:\/\/hanjo.dev\/de\/blog\/create-grav-cms-php-cookie-consent-plugin","content_html":"<p>Grav CMS is such a lightweight and convenient content management system for building your own blog or portfolio page. It offers freedom to beginner and intermediate+ backend engineers to make adjustments according to their needs.<\/p>\n\n<p>As a flat filesystem based CMS building your own theme or plugin is unsurprisingly simple. In this article I'm gonna share my experiences in building your first Grav CMS plugin.<\/p>\n<h2>Prequisites<\/h2>\n<p>What you need for building your own Grav CMS plugin, is of course an up-and-running Grav CMS setup. I am fully satisfied with a buildup using docker and docker-compose and a minimalistic <strong>docker-compose.yaml<\/strong> configuration file.<\/p>\n<pre><code class=\"language-yaml\">---\nservices:\n  grav:\n    image: lscr.io\/linuxserver\/grav:latest\n    container_name: grav\n    environment:\n      - PUID=1000\n      - PGID=1000\n      - TZ=Etc\/UTC\n    volumes:\n      - $PWD\/grav\/config:\/config\n    ports:\n      - 8090:80\n    restart: unless-stopped<\/code><\/pre>\n<p>Running <code>docker-compose up -d<\/code> exposes the desired services on port 8090 of your host system and the admin panel is accessible via <a href=\"#\">localhost:8090\/admin<\/a>. After completing the basic setup, you are almost good to go.<\/p>\n<p>Grav CMS provides its own <a target=\"_blank\" href=\"https:\/\/learn.getgrav.org\/17\/cli-console\/grav-cli-gpm\">package manager<\/a>, which makes it easier to manage new themes or plugins.\nYou gain access by punching in <code>docker exec -it -w \/app\/www\/public grav bin\/gpm<\/code>. <\/p>\n<div class=\"notices yellow\">\n<p>In future references I won't be displaying the full docker...<\/p><\/div>","tags":["featured","CMS","PHP","cookie consent"],"image":"\/user\/pages\/02.blog\/create-grav-cms-php-cookie-consent-plugin\/gravcms-plugin-teaser.webp"},{"title":"Mit Home Assistant deine Porkbun DNS Eintr\u00e4ge verwalten","date_published":"2024-06-01T14:02:00+02:00","id":"https:\/\/hanjo.dev\/de\/blog\/mit-home-assistant-deine-porkbun-dns-eintraege-verwalten","url":"https:\/\/hanjo.dev\/de\/blog\/mit-home-assistant-deine-porkbun-dns-eintraege-verwalten","content_html":"<p>Dynamisches DNS ist sehr hilfreich, um auf Ihr lokales Netzwerk zugreifen zu k&ouml;nnen, wenn Sie nicht zu Hause sind. Dieser Artikel zeigt, wie Sie Ihre porkbun.com DNS-Eintr&auml;ge verwalten und mit Hilfe von Home Assistant mit Ihrem lokalen Netzwerk synchronisieren k&ouml;nnen.<\/p>\n\n<p>Es ist eine fantastische Idee, zu Hause eigene Cloud-Dienste einzurichten, die digitale Freiheit zu nutzen und die volle Kontrolle &uuml;ber die eigenen Daten zu haben. Aber um Ihre Cloud, Ihre Passw&ouml;rter, Ihr Smarthome oder Ihre Automatisierungen verwalten zu k&ouml;nnen, muss Ihr kleiner Server in Form eines Raspberry Pi, Odroid oder eines &auml;hnlichen Ger&auml;ts von der Au&szlig;enwelt aus erreichbar sein. <\/p>\n<p>Wahrscheinlich aktualisiert Ihr Internetprovider Ihren DHCP-Lease einmal pro Tag und weist Ihrem Netzwerk eine neue IP-Adresse zu. Um ohne R&auml;tselraten auf Ihr Netzwerk zugreifen zu k&ouml;nnen, ist es empfehlenswert, eine eigene Domain oder Subdomain zu haben, die auf diese Netzwerkadresse verweist. Ich zeige Ihnen, wie Sie <strong>die DNS-Eintr&auml;ge Ihrer bei porkbun.com registrierten Domain &uuml;ber Home Assistant und die Porkbun API<\/strong> aktualisieren k&ouml;nnen, und Ihre aktuelle IP zuzuordnen.<\/p>\n<p>Nat&uuml;rlich gibt es viele M&ouml;glichkeiten, DNS-Eintr&auml;ge zu aktualisieren (ddclient, benutzerdefinierte Skripte, ...), aber ich habe mich f&uuml;r Home Assistant entschieden, weil ich die &Auml;nderungen leicht mit der Home Assistant-App oder sogar mit dem Telegram-Messenger...<\/p>","tags":["featured","home assistant","smart home","dynamic DNS"],"image":"\/user\/pages\/02.blog\/use-home-assistant-to-dynamically-update-your-porkbun-dns-records\/homeassistant-porkbun-flow.webp"},{"title":"Attach and setup a filament runout sensor for your Ender 3 V2","date_published":"2024-05-04T09:46:00+02:00","id":"https:\/\/hanjo.dev\/de\/blog\/attach-and-setup-a-filament-runout-sensor-for-your-ender-3-v2","url":"https:\/\/hanjo.dev\/de\/blog\/attach-and-setup-a-filament-runout-sensor-for-your-ender-3-v2","content_html":"<p>Adding a filament runout sensor to your Ender 3 V2 setup increases the success rate of your 3d prints, and keeps your mid-print models alive, when your filament breaks or runs out.<\/p>\n\n<p>Due to a lack of storing my filament spools appropriately, I often had issues regarding moist filaments, and it did not help that my filament takes a long way until it reaches the hotend. My prints occasionally started with fragile filament, which resulted in broke and stuck filament after a few layers of printing.<\/p>\n<h2>What you need<\/h2>\n<p>To reduce those filament troubles, I decided to upgrade my Ender 3 V2 to support filament runout monitoring directly. <\/p>\n<p>And this is what you need:<\/p>\n<ul>\n<li>a filament runout sensor (EZOut V2 Filament Sensor or similar)<\/li>\n<li>a 3-pin cable<\/li>\n<li>a <a target=\"_blank\" href=\"https:\/\/www.thingiverse.com\/make:1167860\">3d printed filament sensor mount<\/a> for the Ender 3 V2<\/li>\n<li>a 608 bearing for the mount roller guide (you could even <a target=\"_blank\" href=\"https:\/\/www.thingiverse.com\/thing:4628063\">print<\/a> one)<\/li>\n<\/ul>\n<h2>Attach the cable to your Ender 3 V2<\/h2>\n<p>My Ender 3 V2 setup already included a raspberry pi octoprint server, and I was not fully certain, if I should plug or solder the runout sensor onto the GPIO pins of my raspberry pi, or if it would be the...<\/p>","tags":["featured","3d printing","ender 3 v2"],"image":"\/user\/pages\/02.blog\/attach-and-setup-a-filament-runout-sensor-for-your-ender-3-v2\/IMG_20240402_172634.jpg"},{"title":"Aus IKEA LACK Tischen ein Wandboard in holz-wei\u00df Optik bauen","date_published":"2024-04-17T15:03:00+02:00","id":"https:\/\/hanjo.dev\/de\/blog\/aus-ikea-lack-tischen-ein-wandboard-in-holz-wei%C3%9F-optik-bauen","url":"https:\/\/hanjo.dev\/de\/blog\/aus-ikea-lack-tischen-ein-wandboard-in-holz-wei%C3%9F-optik-bauen","content_html":"<p>Dieser Artikel zeigt, wie man aus <strong>IKEA LACK Tischen<\/strong> ein stylisches und zugleich kosteng&uuml;nstiges Wandboard in holz-wei&szlig; Optik baut.<\/p>\n\n<p>Vor ein paar Monaten stolperte ich zuf&auml;llig &uuml;ber ein Youtube-Tutorial eines Do-it-yourself-Genies, indem gezeigt wurde, wie man eine LED-Regaluhr entwirft. Ich war begeistert von der Qualit&auml;t, Struktur des Tutorials und Detailliebe des Designs, dass ich beschloss, selbst eine zu bauen. Das erste Hindernis, dass es zu &uuml;berwinden galt, war, eine Holzplatte zu finden, die gro&szlig; genug war, um die 1,12 m lange Regaluhr zu halten. Jedoch besa&szlig; ich kein Auto, um in einem Baumarkt eine geeignete Platte zu kaufen und zu transportieren, und ich wollte keine hohen Versandkosten zahlen, nur um eine einfache Holzplatte zu kaufen. Zumal sollte das Wandboard so leichtgewichtig wie m&ouml;glich sein.<\/p>\n<h2>Das richtige Material finden<\/h2>\n<p>Ich suchte also nach einem Wandboard, welches erschwinglich, leicht und einfach zu transportieren war. Und warum nicht zwei kleinere Platten kombinieren, um eine gr&ouml;&szlig;ere zu schaffen? Ich dachte daran, eine <strong>Kombination aus IKEA LACK-Tischen<\/strong> zu verwenden, aber um eine Platte mit einer Mindestl&auml;nge von 1,12 m zu bauen, fehlten mir bei der Standardl&auml;nge von 55 cm eines einzelnen IKEA LACK-Tisches 2 cm L&auml;nge f&uuml;r die Mindestanforderung des Uhrendesigns.<\/p>\n<p>Die Abmessungen der Tischplatte...<\/p>","tags":["do-it-yourself"],"image":"\/user\/pages\/02.blog\/building-a-woody-white-wall-board-using-ikea-lack-tables\/IMG_20240405_172312.jpg"}]}
