{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "fboës - Der Blog | Artikel mit dem Tag \"The Cool\"",
  "home_page_url": "https://journal.3960.org/",
  "feed_url": "https://journal.3960.org/tagged/the-cool/feed.json",
  "description": "Programmierung, Luft- & Raumfahrt, Kurioses: Der Blog von und mit Frank Boës.",
  "icon": "https://cdn.3960.org/favicon-192x192.png",
  "favicon": "https://cdn.3960.org/images/tile-128x128.png",
  "author": {
    "name": "Frank Boës",
    "url": "mailto:info@3960.org"
  },
  "authors": [
    {
      "name": "Frank Boës",
      "url": "mailto:info@3960.org"
    }
  ],
  "language": "de-DE",
  "_rss": {
    "about": "http://cyber.harvard.edu/rss/rss.html",
    "copyright": "© 2008-2023 Creative Commons BY"
  },
  "items": [
    {
      "id": "user/posts/2026-03-24-mission-to-mars-2062/index.md",
      "url": "https://journal.3960.org/posts/2026-03-24-mission-to-mars-2062/",
      "title": "Mission to Mars 2062",
      "content_html": "<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=q0qwCD-cOwc\" src=\"https://www.youtube-nocookie.com/embed/q0qwCD-cOwc?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/q0qwCD-cOwc?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/q0qwCD-cOwc/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/q0qwCD-cOwc/hqdefault.jpg\" --></div>\n<p>The YouTube channel „SAD: Frontier“ does beautifully rendered space opera stuff with great story-telling, superb soundtrack and a keen eye for engineering details as well as space physics. Their recent masterpiece is „Mission to Mars 2062“.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Mission%20to%20Mars%202062&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2026-03-24-mission-to-mars-2062%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "The YouTube channel „SAD: Frontier“ does beautifully rendered space opera stuff with great story-telling, superb soundtrack and a keen eye for engineering…",
      "date_published": "2026-03-24T19:17:44+01:00",
      "date_modified": "2026-03-24T19:17:44+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/q0qwCD-cOwc/hqdefault.jpg",
      "language": "en-GB",
      "image": "https://img.youtube.com/vi/q0qwCD-cOwc/hqdefault.jpg",
      "tags": [
        "Raumfahrt",
        "The Cool"
      ]
    },
    {
      "id": "user/posts/2025-04-15-marathon-trailer/index.md",
      "url": "https://journal.3960.org/posts/2025-04-15-marathon-trailer/",
      "title": "Marathon – Der Trailer",
      "content_html": "<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=fvbEnWLRo1s\" src=\"https://www.youtube-nocookie.com/embed/fvbEnWLRo1s?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/fvbEnWLRo1s?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/fvbEnWLRo1s/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/fvbEnWLRo1s/hqdefault.jpg\" --></div>\n<p>Schnitt, Ästhetik, Voice Acting, Choreographie, Musik, Sound, Story, <em>Atmosphäre</em> – der Trailer zu „Marathon“ ist ein Stück Kunst.</p>\n<p>Von mir aus kann Bungie statt einem Extraction Shooter auch einen Kinofilm aus dem Setting machen.</p>\n<p>Der Stil erinnert nicht von ungefähr an die ebenfalls sehr eindringliche Folge <a href=\"https://www.imdb.com/title/tt20239442/\">„Jibaro“ aus der Serie „Love, Death &amp; Robots“</a>.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Marathon%20%E2%80%93%20Der%20Trailer&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2025-04-15-marathon-trailer%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Schnitt, Ästhetik, Voice Acting, Choreographie, Musik, Sound, Story, Atmosphäre – der Trailer zu „Marathon“ ist ein Stück Kunst.\nVon mir aus kann Bungie statt…",
      "date_published": "2025-04-15T18:03:29+02:00",
      "date_modified": "2025-04-15T19:13:47+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/fvbEnWLRo1s/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/fvbEnWLRo1s/hqdefault.jpg",
      "tags": [
        "Raumfahrt",
        "Spiel",
        "Technologie",
        "The Cool"
      ]
    },
    {
      "id": "user/posts/2024-08-28-chatgpt-does-flight-plans/index.md",
      "url": "https://journal.3960.org/posts/2024-08-28-chatgpt-does-flight-plans/",
      "title": "ChatGPT does flight plans",
      "content_html": "<p>A brilliant conversation with ChatGPT for proposing a flight plan:</p>\n<!-- more -->\n<p id=\"more\">Please propose a short flight from Martha&#39;s Vineyard airport to a nearby airport with a Cessna 172</p>\n<blockquote><p>A great short flight from Martha&#39;s Vineyard Airport (MVY) in a Cessna 172 would be to Nantucket Memorial Airport (ACK). The flight covers about 30 nautical miles, which takes roughly 20–30 minutes depending on conditions. This route offers stunning views of the Atlantic Ocean and the islands, making it a scenic and enjoyable flight.</p><p>Given the relatively short distance and straightforward navigation over open water, it&#39;s a perfect trip for a short hop in a Cessna 172.</p></blockquote>\n<p>Could you give me a flight plan recommendation?</p>\n<blockquote><p>Certainly! Below is a suggested VFR (Visual Flight Rules) flight plan for a Cessna 172 from Martha&#39;s Vineyard Airport (KMVY) to Nantucket Memorial Airport (KACK).</p><h2 id=\"flight-plan-overview\">Flight Plan Overview:</h2><ul><li><strong>Departure:</strong> Martha&#39;s Vineyard Airport (KMVY)</li><li><strong>Destination:</strong> Nantucket Memorial Airport (KACK)</li><li><strong>Distance:</strong> ~30 NM</li><li><strong>Estimated Flight Time:</strong> 20–30 minutes</li><li><strong>Cruising Altitude:</strong> 3,000 feet (VFR recommended altitude)</li><li><strong>Flight Type:</strong> VFR</li></ul><h2 id=\"flight-plan-details\">Flight Plan Details:</h2><ul><li><p><strong>Pre-Flight:</strong></p><ul><li><strong>Weather:</strong> Check METAR/TAF for both MVY and ACK, as well as en route weather.</li><li><strong>Weight &amp; Balance:</strong> Ensure your Cessna 172 is within weight and balance limits.</li><li><strong>Fuel:</strong> Verify adequate fuel for the flight, including reserves.</li><li><strong>Navigation:</strong> Set up your navigation radios and GPS if available.</li></ul></li><li><p><strong>Departure from KMVY:</strong></p><ul><li><strong>Runway:</strong> Depending on the wind, likely Runway 24 or 06.</li><li><strong>Climb Out:</strong> After takeoff, climb to a cruising altitude of 3,000 feet.</li><li><strong>Heading:</strong> After departure, fly a south-eastern heading towards Nantucket. The initial heading will be approximately 120°.</li></ul></li><li><p><strong>En Route:</strong></p><ul><li><strong>Direct Route:</strong> Fly direct from MVY to ACK.</li><li><strong>Landmarks:</strong> You’ll be over water most of the way, with limited landmarks. However, keep an eye out for the following:<ul><li><strong>Edgartown</strong> on Martha&#39;s Vineyard, off to your left shortly after departure.</li><li><strong>Tuckernuck Island</strong> before reaching Nantucket.</li></ul></li></ul></li><li><p><strong>Arrival at KACK:</strong></p><ul><li><strong>Communication:</strong> Contact Nantucket Tower as you approach the Class D airspace.</li><li><strong>Descent:</strong> Begin your descent to pattern altitude (1,000 feet AGL) as you near the airport.</li><li><strong>Pattern Entry:</strong> Depending on the active runway, enter the appropriate traffic pattern.</li><li><strong>Runway:</strong> Likely Runway 24 or 06, depending on wind conditions.</li></ul></li><li><p><strong>Landing:</strong></p><ul><li>Perform a standard landing, taxi to the ramp, and shut down.</li></ul></li></ul><h2 id=\"communication-frequencies\">Communication Frequencies:</h2><ul><li><strong>MVY ATIS:</strong> 118.12 MHz</li><li><strong>MVY Ground:</strong> 121.90 MHz</li><li><strong>MVY Tower:</strong> 119.70 MHz</li><li><strong>ACK ATIS:</strong> 133.45 MHz</li><li><strong>ACK Tower:</strong> 118.30 MHz</li></ul><h2 id=\"considerations\">Considerations:</h2><ul><li><strong>Wind:</strong> Check the wind direction and adjust your runway choice and headings accordingly.</li><li><strong>Traffic:</strong> Nantucket can be busy, especially in the summer, so stay alert for other traffic.</li><li><strong>Alternate:</strong> If weather deteriorates or there&#39;s an issue, you could divert back to Martha&#39;s Vineyard or head to Cape Cod (Hyannis, KHYA).</li></ul><p>This is a straightforward flight, but it offers stunning views and a good practice opportunity for navigation over water and handling short cross-country flights. Safe flying!</p></blockquote>\n<p>Can you export that flight plan as Garmin fpl file?</p>\n<blockquote><p>Sure! To create a Garmin .fpl file, I&#39;ll generate the flight plan with the necessary waypoints and export it as an .fpl file. I&#39;ll base the file on the flight plan details we discussed.</p><p>I&#39;ll get that ready for you now.</p><p>I&#39;ve created the Garmin .fpl flight plan file for your route from Martha&#39;s Vineyard (KMVY) to Nantucket (KACK). The file is packaged in a .zip archive, which is often required by Garmin devices.</p><p>You can download the file using the link below:</p><p>Download MVY_to_ACK.zip</p><p>Feel free to upload it to your Garmin device, and have a great flight! If you need anything else, just let me know.</p></blockquote>\n<p>This is brilliant. Thank you</p>\n<blockquote><p>You&#39;re very welcome! I&#39;m glad you found the flight plan helpful. Enjoy the flight, and if you have any more questions or need further assistance, feel free to reach out. Safe skies! ✈️</p></blockquote><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=ChatGPT%20does%20flight%20plans&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2024-08-28-chatgpt-does-flight-plans%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "A brilliant conversation with ChatGPT for proposing a flight plan:",
      "date_published": "2024-08-28T18:55:44+02:00",
      "date_modified": "2024-08-28T18:58:54+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://cdn.3960.org/favicon-192x192.png",
      "language": "en-US",
      "image": "https://cdn.3960.org/favicon-192x192.png",
      "tags": [
        "Fliegerei",
        "Programmierung",
        "Simulation",
        "Technologie",
        "The Cool"
      ]
    },
    {
      "id": "user/posts/2023-12-19-one-revolution-per-minute/index.md",
      "url": "https://journal.3960.org/posts/2023-12-19-one-revolution-per-minute/",
      "title": "One revolution per minute",
      "content_html": "<div class=\"video-player video-player--vimeo\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://vimeo.com/869858712\" src=\"https://player.vimeo.com/video/869858712\"></iframe></div>\n<p>Manche Künstler trifft man mehrfach im Leben. <a href=\"https://erikwernquist.com/\">Erik Wernquist</a> ist so ein Künstler. „One revolution per minute“ zeigt uns das Leben an Bord eines Kreuzfahrtraumschiffs…</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=One%20revolution%20per%20minute&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2023-12-19-one-revolution-per-minute%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Manche Künstler trifft man mehrfach im Leben. Erik Wernquist ist so ein Künstler. „One revolution per minute“ zeigt uns das Leben an Bord eines…",
      "date_published": "2023-12-19T18:43:57+01:00",
      "date_modified": "2023-12-19T18:43:57+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://cdn.3960.org/favicon-192x192.png",
      "language": "de-DE",
      "image": "https://cdn.3960.org/favicon-192x192.png",
      "tags": [
        "The Cool",
        "Raumfahrt",
        "Technologie"
      ]
    },
    {
      "id": "user/posts/2023-12-13-ridon-hoverbike/index.md",
      "url": "https://journal.3960.org/posts/2023-12-13-ridon-hoverbike/",
      "title": "RIDON Hoverbike",
      "content_html": "<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=Dm9awXyv2z8\" src=\"https://www.youtube-nocookie.com/embed/Dm9awXyv2z8?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/Dm9awXyv2z8?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/Dm9awXyv2z8/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/Dm9awXyv2z8/hqdefault.jpg\" --></div>\n<p>Die <a href=\"https://www.ivangraphics.com/\">Portfolio-Seite von Ivan Tantsiura</a> ist eine wunderbare Fundgrube. Tantsiura arbeitet als Principal Concept Artist bei Crytek, und hat Unmengen an futuristischen Designs geschaffen – unter anderem das <a href=\"https://www.artstation.com/artwork/RvvOe\">RIDON Hoverbike</a>.</p>\n<p>Verglichen mit dem Speederbike aus Star Wars sieht man beim RIDON Hoverbike, warum das Hoverbike schwebt – und auch, dass diese Art von Schweben schon etwas sehr dynamisches hat. Der Mechanismus (wie auch die Welt des Hoverbikes) erinnern an <a href=\"https://simonstalenhag.se/\">Simon Stålenhag</a> und seine schwebenden Schiffe.</p>\n<p>Man bekommt direkt Lust, selber eine kleine Spritztour mit dem RIDON Hoverbike zu machen. Wo bleibt also der Arcade-Automat beziehungsweise das VR-Spiel zum Thema?</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=RIDON%20Hoverbike&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2023-12-13-ridon-hoverbike%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Die Portfolio-Seite von Ivan Tantsiura ist eine wunderbare Fundgrube. Tantsiura arbeitet als Principal Concept Artist bei Crytek, und hat Unmengen an…",
      "date_published": "2023-12-13T18:38:16+01:00",
      "date_modified": "2023-12-14T12:44:05+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/Dm9awXyv2z8/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/Dm9awXyv2z8/hqdefault.jpg",
      "tags": [
        "The Cool",
        "Raumfahrt",
        "Technologie",
        "Geckobar"
      ]
    },
    {
      "id": "user/posts/2023-05-26-sommermodus-mit-fritz-dect-home-assistant/index.md",
      "url": "https://journal.3960.org/posts/2023-05-26-sommermodus-mit-fritz-dect-home-assistant/",
      "title": "Sommermodus mit FRITZ!DECT und Home Assistant",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2023-05-26-sommermodus-mit-fritz-dect-home-assistant/ha-301-240x240.png\" class=\"quad\" width=\"240\" height=\"240\" style=\"--aspect-ratio: 1/1;\" alt=\"\" /> Der Sommermodus für die FRITZ!DECT-Thermostate wird über die FRITZ!Box gesteuert – mit einem festen Zeitplan. Mehr Flexibilität gibt es mit dem <a href=\"https://www.home-assistant.io/\">Home Assistant</a>, um zum Beispiel auf Temperaturdaten oder Wetterprognosen reagieren zu können.</p>\n<!-- more -->\n<p id=\"more\">Dummerweise lässt sich der Sommermodus an den Thermostaten vom Home Assistant aus nicht einfach auslösen. Und selbst die im Home Assistant vorhandene Möglichkeit, den Thermostat einfach auszuschalten, funktioniert nicht wirklich gut – der nächste Schaltbefehl an den Thermostat hebt die Abschaltung wieder auf. Außerdem kann der Sommermodus deutlich mehr als nur die Heizung abzuschalten – unter anderem kümmert er sich um das gelegentliche Bewegen der Ventile, um sie vor dem Steckenbleiben zu bewahren.</p>\n<h2 id=\"die-lösung\">Die Lösung</h2>\n<p>…ist zweiteilig: In der FRITZ!Box legen wir mittels Vorlagen das ein- und ausschalten des Sommermodus&#39; an – und im Home Assistant lösen wir dann die Vorlagen aus.</p>\n<p><span class=\"figure\"><img src=\"https://journal.3960.org/posts/2023-05-26-sommermodus-mit-fritz-dect-home-assistant/fritz-heizen.png\" alt=\"Vorlagen in der FRITZ!Box - nützlicher, als gedacht\" /><span class=\"figcaption\" aria-hidden=\"true\">Vorlagen in der FRITZ!Box - nützlicher, als gedacht<br /></span></span></p>\n<ol>\n<li>In der FRITZ!Box legt ihr unter „Smart Home &gt; Automatisierungen“ eine neue Vorlage an, die ihr zum Beispiel „Sommermodus an“ nennt.<ol>\n<li>Wählt alle Heizungen aus, die ihr zeitgleich in den Sommermodus schicken wollt.</li>\n<li>Hinterlegt nun mit „Automatische Einstellungen &gt; Heizen beendet“ einen Zeitplan für den Sommermodus, der einfach das ganze Jahr umfasst. (Vorsichtige Naturen können dies auch vom 01. Mai bis 01. Oktober wählen.)</li>\n</ol>\n</li>\n<li>In der FRITZ!Box baut ihr nun eine zweite Vorlage, die ihr zum Beispiel „Sommermodus aus“ nennt.<ol>\n<li>Wählt wieder die selben Heizungen wie bei „Sommermodus an“ aus.</li>\n<li>Wählt nun die Option „Automatische Einstellungen &gt; Heizen beendet“ und hinterlegt <em>keinen</em> Zeitplan. Durch Auslösen dieses Vorlage wird nun der Sommermodus in den Heizungen gelöscht.</li>\n</ol>\n</li>\n<li>Nun wechselt in eurem Home Assistant und macht unter „Einstellungen &gt; Geräte und Dienste &gt; AVM FRITZ!SmartHome“ mittels der Option „Neu laden“ die neuen Vorlagen auch im Home Assistant bekannt. Diese hier „Smart Home Templates“ genannten Entitäten erzeugen automatisch ein Gerät, nämlich einen virtuellen Button.</li>\n<li>Diese Buttons könnt ihr nun eurem Dashboard hinzufügen, und so manuell den Sommermodus an- und ausschalten.</li>\n</ol>\n<h2 id=\"reaktion-auf-knöpfe\">Reaktion auf Knöpfe</h2>\n<p>Den Druck auf einen dieser Knöpfe könnt ihr im Hone Assistant abfangen und zusätzliche Aktionen auslösen.</p>\n<p>Dazu müsst ihr eine Automatisierung bauen, die beim Druck auf die Knöpfe neben den Vorlagen in der FRITZ!Box noch zusätzliche Aktionen auslösen:</p>\n<pre><code class=\"language-yaml\"><i>alias</i>: <kbd>&quot;Heizungen: Sommermodus an&quot;</kbd>\n<i>description</i>: <kbd>&quot;&quot;</kbd>\n<i>trigger</i>:\n  - <i>platform</i>: device\n    <i>device_id</i>: 5f6c4925f76d4ef27407160a968bb7fd\n    <i>domain</i>: button\n    <i>entity_id</i>: button.heizungen_sommermodus_an\n    <i>type</i>: pressed\n<i>condition</i>: []\n<i>action</i>:\n  - <i>service</i>: notify.notify\n    <i>data</i>:\n      <i>title</i>: <kbd>&quot;Sommermodus an&quot;</kbd>\n      <i>message</i>: &gt;-\n        Alle Heizungen sind nun abgeschaltet, willkommen im Sommermodus.\n    <i>enabled</i>: <samp>true</samp>\n<i>mode</i>: single\n</code></pre>\n<h2 id=\"automatisierung-des-sommermodus\">Automatisierung des Sommermodus&#39;</h2>\n<p>Wir haben aber ja die ganze Arbeit nicht auf uns genommen, um im Home Assistant selber auf Knöpfe drücken zu müssen. Tatsächlich können wir <strong>Automatisierungen</strong> des Home Assistants für uns auf den Knopf drücken lassen.</p>\n<p>Dabei kann in jeder Automatisierung als Aktion der Druck auf die Knöpfe ausgelöst werden:</p>\n<pre><code class=\"language-yaml\"><i>action</i>:\n  - <i>service</i>: button.press\n    <i>data</i>: {}\n    <i>target</i>:\n    <i>entity_id</i>: button.sommermodus_an\n    <i>enabled</i>: <samp>true</samp>\n</code></pre>\n<p>Somit könnt ihr euch nun beliebige Auslöser im Home Assistant konfigurieren, die eure Heizung in den Sommermodus schicken.</p>\n<h3 id=\"mehr-automatisierungen-mit-der-fritzbox-und-dem-home-assistant\">Mehr Automatisierungen mit der FRITZ!Box und dem Home Assistant</h3>\n<p>Die selbe Methode lässt sich neben dem Sommermodus auch für den Urlaubsmodus und eigentlich jede andere Vorlage in der FRITZ!Box anwenden. Dafür müsst ihr nur jeweils in der FRITZ!Box das gewünschte Verhalten als Vorlage definieren, um danach den zugehörigen Button im Home Assistant drücken zu können – beziehungsweise durch eine Automatisierungen auslösen zu können.</p>\n<p>Theoretisch könnt ihr darüber auch abweichende Zeitpläne oder geänderte Spar-/Komforttemperaturen oder zeitlich begrenzte EInstellungen wie Boost oder Fenster-Modus aktivieren.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Sommermodus%20mit%20FRITZ!DECT%20und%20Home%20Assistant&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2023-05-26-sommermodus-mit-fritz-dect-home-assistant%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Der Sommermodus für die FRITZ!DECT-Thermostate wird über die FRITZ!Box gesteuert – mit einem festen Zeitplan. Mehr Flexibilität gibt es mit dem Home Assistant…",
      "date_published": "2023-05-26T18:45:26+02:00",
      "date_modified": "2023-05-29T09:48:19+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2023-05-26-sommermodus-mit-fritz-dect-home-assistant/ha-301.png",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2023-05-26-sommermodus-mit-fritz-dect-home-assistant/ha-301.png",
      "tags": [
        "Home Assistant",
        "Programmierung",
        "Technologie",
        "The Cool",
        "AVM",
        "Homeoffice"
      ]
    },
    {
      "id": "user/posts/2023-02-14-pragmatische-heizungssteuerung-home-office/index.md",
      "url": "https://journal.3960.org/posts/2023-02-14-pragmatische-heizungssteuerung-home-office/",
      "title": "Pragmatische Heizungssteuerung im Home-Office",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2023-02-14-pragmatische-heizungssteuerung-home-office/ha-301-240x240.png\" class=\"quad\" width=\"240\" height=\"240\" style=\"--aspect-ratio: 1/1;\" alt=\"\" /> Mein neuestes Abenteuer mit dem <a href=\"https://www.home-assistant.io/\">Home Assistant</a> in Verbindung mit <a href=\"https://avm.de/produkte/fritzdect/fritzdect-301/\">FRITZ!DECT 301</a> beschäftigt sich mit einer smarten Heizungssteuerung für das Home-Office.</p>\n<!-- more -->\n<h2 id=\"more\">Wie es lief</h2>\n<p>Ach, was habe ich alles gebaut und gebastelt. Los ging es mit einem einfachen Zeitplan in der FRITZ!Box, der <strong>jeden Montag bis Freitag</strong> in der Arbeitszeit die Heizung ein- und danach wieder ausschaltete. Ich war&#39;s zufrieden.</p>\n<p>Aber an <strong>Feiertagen</strong>, die zwischen Montag und Freitag lagen, lief die Heizung immer noch. Höchste Zeit, den <a href=\"https://www.home-assistant.io/integrations/workday/\">Werktags-Sensor</a> über den Home Assistant zu verbauen und in die Heizungssteuerung mit einzubeziehen. Dafür musste ich dann den Zeitplan aus der FRITZ!Box entfernen und ebenfalls in den Home Assistant übertragen.</p>\n<p>Und im Urlaub? Urlaube sind ja keine Feiertage. Also noch einen Kalender in den Home Assistant integriert, der an <strong>Urlaubstagen</strong> die Heizung ebenfalls ausgeschaltet hält.</p>\n<p>Oha, <strong>Gleitzeit und Überstunden</strong>: Mal starte ich früher, mal höre ich später auf. Also diesen Teil von Hand steuern? Und wie ist es am Wochenende, wenn man im Arbeitszimmer am privaten PC etwas bastelt?</p>\n<p>Wie man es auch dreht und wendet – der Plan hatte inzwischen viel zu viele Variablen bekommen. Eigentlich wollte ich doch nur, dass die Heizung läuft, wenn ich im Raum bin! Aber wie kann ich das dem Home Assistant beibringen?</p>\n<h2 id=\"wie-es-läuft\">Wie es läuft</h2>\n<p>Ganz einfach! Ob im Büro jemand arbeitet kann man daran erkennen, dass einer der PCs im Büro eingeschaltet ist. Ein super-simples Rezept kann also prüfen, ob mindestens einer der Rechner dort an und im Netzwerk sichtbar ist, und schaltet entsprechend die Heizung an. Wenn <em>keiner</em> der Rechner im Netzwerk ist, wird die Heizung entsprechend ausgeschaltet.</p>\n<h3 id=\"teil-1-status-der-pcs-überwachen\">Teil 1: Status der PCs überwachen</h3>\n<p><img src=\"https://journal.3960.org/posts/2023-02-14-pragmatische-heizungssteuerung-home-office/network-240x240.png\" class=\"quad\" width=\"240\" height=\"240\" style=\"--aspect-ratio: 1/1;\" alt=\"\" /> Dazu bauen wir uns einen Zustand, der eingeschaltet ist, wenn irgendeiner der PCs angeschaltet und im Netzwerk ist – und erst ausgeschaltet ist, wenn <em>alle</em> PCs ausgeschaltet sind. Das funktioniert wie folgt:</p>\n<ol>\n<li>Wenn ihr im Home Assistant und „Einstellungen &gt; Geräte &amp; Dienste &gt; FRITZ!Box“ die Liste der Geräte aufmacht, seht ihr die Liste aller von eurer FRITZ!Box erkannten Netzwerkteilnehmer. In meinem Beispiel nennen wir die zwei PCs <code>arbeitspferd</code> und <code>daddelkiste</code>.</li>\n<li>Merkt euch die Namen der Netzwerkteilnehmer, die beim Einschalten eure Heizung einschalten sollen. Unter „Entwicklerwerkzeuge &gt; Zustände“ findet ihr dazu den passenden Zustand, der mit <code>device_tracker</code> beginnt. In meinem Beispiel gehen wir von zwei PC-Trackern aus, <code>device_tracker.arbeitspferd</code> und <code>device_tracker.daddelkiste</code>.</li>\n<li>Mit dem <a href=\"https://community.home-assistant.io/t/home-assistant-community-add-on-visual-studio-code/107863\">Home Assistant Community Add-on: Visual Studio Code</a> kann die <code>configuration.yaml</code> nun so erweitert werden, dass die beiden Tracker (oder beliebig viele Tracker) zu einem Sammel-Tracker zusammengefasst werden.</li>\n</ol>\n<pre><code class=\"language-yaml\">- <i>name</i>: <kbd>&quot;Home-Office PCs&quot;</kbd>\n  <i>unique_id</i>: device_tracker_homeoffice\n  <i>state</i>: <kbd>&quot;{{ is_state('device_tracker.arbeitspferd', 'home') or is_state('device_tracker.daddelkiste', 'home') }}&quot;</kbd>\n  <i>icon</i>: <kbd>&quot;mdi:lan-connect&quot;</kbd>\n  <i>device_class</i>: presence\n</code></pre>\n<p>Nach einmaligem Neustart sollte unter „Entwicklerwerkzeuge &gt; Zustände“ der neue Tracker sichtbar sein. Er heißt dann wahrscheinlich <code>binary_sensor.device_tracker_homeoffice</code>.</p>\n<p>Unser neuer kleiner Device-Tracker „Home-Office PCs“ kann nun zum Beispiel auf dem Dashboard verbaut werden. Sobald eines der Geräte eingeschaltet wird, wird auch der Tracker eingeschaltet – beim Ausschalten gibt es knapp zwei Minuten Verzögerung, bis der Home Assistant das Gerät wirklich als offline annimmt.</p>\n<h3 id=\"teil-2-heizung-steuern\">Teil 2: Heizung steuern</h3>\n<p>Der Home Assistant kann nun die Programmierung der FRITZ!Box verbessern. Dafür wird in der FRITZ!Box die Heizung zu 100% in den Spar-Modus geschickt, weil ab sofort der Home Assistant die Heizung zwischen Spar- und Komfort-Modus hin- und herschaltet. Die Verbindung ist dabei einfach:</p>\n<ol>\n<li>Wenn auch nur einer der PCs an ist, soll die Heizung im Komfort-Modus sein.</li>\n<li>Wenn keiner der PCs an ist, soll die Heizung im Spar-Modus sein.</li>\n</ol>\n<p>Unter „Einstellungen &gt; Automatisierungen &amp; Szenen“ fügen wir dazu ein einfaches Rezept hinzu:</p>\n<pre><code class=\"language-yaml\"><u># Replace all occurences of `office` with your thermostat's identifier</u>\n<u># `device_id` has to be assigned via GUI</u>\n<i>alias</i>: <kbd>&quot;Office: Someone is there&quot;</kbd>\n<i>description</i>: <kbd>&quot;Be nice, and turn on the heating if someone is using a PC in the office&quot;</kbd>\n<i>trigger</i>:\n  - <i>platform</i>: state\n    <i>entity_id</i>:\n      - binary_sensor.device_tracker_homeoffice\n    <i>from</i>: <kbd>&quot;on&quot;</kbd>\n  - <i>platform</i>: state\n    <i>entity_id</i>:\n      - binary_sensor.device_tracker_homeoffice\n    <i>to</i>: <kbd>&quot;on&quot;</kbd>\n<i>action</i>:\n  - <i>if</i>:\n      - <i>condition</i>: state\n        <i>entity_id</i>: binary_sensor.device_tracker_homeoffice\n        <i>state</i>: <kbd>&quot;on&quot;</kbd>\n    <i>then</i>:\n      - <i>device_id</i>: b46c4851235fb8c90f4a659b6e9a953d\n        <i>domain</i>: climate\n        <i>entity_id</i>: climate.office\n        <i>type</i>: set_preset_mode\n        <i>preset_mode</i>: comfort\n    <i>else</i>:\n      - <i>device_id</i>: b46c4851235fb8c90f4a659b6e9a953d\n        <i>domain</i>: climate\n        <i>entity_id</i>: climate.office\n        <i>type</i>: set_preset_mode\n        <i>preset_mode</i>: eco\n<i>mode</i>: single\n</code></pre>\n<p>Erst mit der Zusammenfassung der beiden Zustände zu einem Tracker ist es sauber möglich, zwischen Spar- und Komfort-Modus hin- und herzuschalten. Wenn wir die Tracker trennen würden könnte es ansonsten passieren, dass das Ausschalten eines Rechners die Heizung deaktiviert, obwohl der andere Rechner eigentlich noch läuft.</p>\n<h2 id=\"wie-es-laufen-könnte\">Wie es laufen könnte</h2>\n<p>Tatsächlich kann man diese Idee auch auf andere Geräte ausdehnen, wie zum Beispiel Fernseher und Spielekonsolen, die ebenfalls im Internet hängen. Eine kleine Automatisierung könnte also abends die Heizung noch etwas länger an lassen, solange der Fernseher läuft.</p>\n<p>Oder wie wäre es mit einem Sammel-Tracker, der die Smartphones aller Haushaltsteilnehmer als Schalter verwendet?</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Pragmatische%20Heizungssteuerung%20im%20Home-Office&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2023-02-14-pragmatische-heizungssteuerung-home-office%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Mein neuestes Abenteuer mit dem Home Assistant in Verbindung mit FRITZ!DECT 301 beschäftigt sich mit einer smarten Heizungssteuerung für das Home-Office.",
      "date_published": "2023-02-14T19:04:06+01:00",
      "date_modified": "2023-02-21T10:37:45+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2023-02-14-pragmatische-heizungssteuerung-home-office/ha-301.png",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2023-02-14-pragmatische-heizungssteuerung-home-office/ha-301.png",
      "tags": [
        "Home Assistant",
        "Programmierung",
        "Technologie",
        "The Cool",
        "AVM",
        "Homeoffice"
      ]
    },
    {
      "id": "user/posts/2023-01-01-fritz-box-home-assistant-remote/index.md",
      "url": "https://journal.3960.org/posts/2023-01-01-fritz-box-home-assistant-remote/",
      "title": "Remote-Zugriff auf den Home Assistant – mit der AVM FRITZ!Box",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2023-01-01-fritz-box-home-assistant-remote/ha-301-240x240.png\" class=\"quad\" width=\"240\" height=\"240\" style=\"--aspect-ratio: 1/1;\" alt=\"\" /> Der <a href=\"https://www.home-assistant.io/\">Home Assistant</a> hat gegenüber vielen anderen Smart-Home-Lösungen einen Vorteil: Er benötigt keinen Internet-Dienst, um zu funktionieren. Damit ist er von vorne herein sehr sicher, da initial keine Daten aus eurem Smart-Home ins Internet entweichen.</p>\n<p>Einen kleinen Nachteil hat diese Konstruktion aber: Euer Home Assistant lässt sich nicht außerhalb eures Heimnetzwerks steuern. Oder?</p>\n<!-- more -->\n<p id=\"more\">Natürlich stimmt das nicht: Direkt im Home Assistant wird Werbung für die <a href=\"https://www.home-assistant.io/cloud/\">Home Assistant Cloud</a> gemacht. Mit diesem kleinen Dienst kann eure vormals nicht im Internet erreichbare Lösung auch außerhalb eures Heimnnetzwerks angesprochen werden. Neben der Tatsache, dass ihr damit ein Sicherheitsfeature eures Home Assistants über Bord geworfen habt, kostet dieser Dienst aber auch Geld.</p>\n<h2 id=\"fritzbox-und-vpn\">FRITZ!Box und VPN</h2>\n<p>Tatsächlich ist der entscheidende Satz, dass euer Home Assistant nur aus eurem Heimnetzwerk zugreifbar ist… beziehungsweise, wenn ihr Zugriff auf euer Heimnetzwerk habt. Wenn ihr also mittels eine Virtual Private Networks auch außerhalb eurer WLAN-Reichweite euch in euer Heimnnetz einwählen könnt, könnt ihr natürlich auch auf euren Home Assistant zugreifen.</p>\n<p>Das schöne an dieser Lösung: Der Zugang zu eurem System ist somit nur durch eine VPN-Verbindung möglich; die Daten eures Systems wie auch der Zugang zum Home Assistant sind nicht direkt im Internet verfügbar.</p>\n<p>Die AVM FRITZ!Box bietet netterweise einen eingebauten VPN-Dienst, der euch mit beliebigen Betriebssystemen für PCs, Laptops und Smartphones eine VPN-Verbindung erlaubt. Die Einrichtung ist nicht schwierig, aber voller Fallstricke. </p>\n<p>Richtet also auf eurer <a href=\"https://avm.de/service/vpn/\">AVM FRITZ!Box einen VPN-Zugang</a> ein, aber mit einer <em>wichtigen</em> Änderung: Wenn euer Home Assistant bereits mit der FRITZ!Box eingerichtet wurde, solltet ihr keinesfalls (wie von AVM vorgeschlagen) eure FRITZ!Box (und damit alle anderen Netzwerkteilnehmer) mit neuen IPs versehen. Denn der Home Assistant merkt sich für so ziemlich jedes Gerät explizit die IP, und eine Änderung ist ein größerer Schmerz. Tatsächlich könnt ihr die IP eurer FRITZ!Box so belassen – und verliert nur die Möglichkeit, über einen Router mit der selben IP das VPN zu benutzen. Tatsächlich erhaltet ihr aber bei einer Mobilverbindung immer eine IP außerhalb des Heimbereichs, könnt also problemlos das VPN nutzen.</p>\n<p>An eurem Home Assistant muss keine weitere Änderung vorgenommen werden. Sobald ihr die VPN-Verbindung aufgebaut habt, könnt ihr sowohl im Browser als auch über die App den Home Assistant benutzen, als ob ihr im Heimnetzwerk wärt.</p>\n<p>Interessanterweise kann eure Home Assistant App (zumindest unter Android) auch außerhalb des Heimnetzwerks Benachrichtigungen eures Home Assistants empfangen. Das liegt daran, dass der Home Assistant mit dem Übertragen der Benachrichtigungen einen Android-Dienst außerhalb eures Netzwerks beauftragt, der euch die Nachrichten über das Internet zustellt.</p>\n<h2 id=\"also-kurz-gefasst\">Also kurz gefasst</h2>\n<ol>\n<li>Richtet ein VPN ein…</li>\n<li>…aber ändert um Gottes willen nicht die IP eures Heimnetzwerks, wenn ihr den Home Assistant bereits eingerichtet habt.</li>\n<li>Richtet den VPN-Zugang auf dem Gerät ein, von dem ihr von außerhalb des Heimnetzwerks auf den Home Assistant zugreifen wollt.</li>\n<li>Wenn ihr unterwegs seid, müsst ihr nur noch das VPN aktivieren, und könnt dann den Home Assistant benutzen, als ob ihr im Heimnetzwerk wärt.</li>\n</ol><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Remote-Zugriff%20auf%20den%20Home%20Assistant%20%E2%80%93%20mit%20der%20AVM%20FRITZ!Box&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2023-01-01-fritz-box-home-assistant-remote%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Der Home Assistant hat gegenüber vielen anderen Smart-Home-Lösungen einen Vorteil: Er benötigt keinen Internet-Dienst, um zu funktionieren. Damit ist er von…",
      "date_published": "2023-01-01T18:17:24+01:00",
      "date_modified": "2023-01-01T18:17:24+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2023-01-01-fritz-box-home-assistant-remote/ha-301.png",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2023-01-01-fritz-box-home-assistant-remote/ha-301.png",
      "tags": [
        "Programmierung",
        "Technologie",
        "The Cool",
        "AVM",
        "Home Assistant"
      ]
    },
    {
      "id": "user/posts/2022-11-08-fritz-dect-301-home-assistant/index.md",
      "url": "https://journal.3960.org/posts/2022-11-08-fritz-dect-301-home-assistant/",
      "title": "FRITZ!DECT 301 im Home Assistant",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2022-11-08-fritz-dect-301-home-assistant/ha-301-240x240.png\" class=\"quad\" width=\"240\" height=\"240\" style=\"--aspect-ratio: 1/1;\" alt=\"\" /> Heizungssteuerung ist in aller Munde. Als Besitzer einer FRITZ!Box habe ich mir also ein paar <a href=\"https://avm.de/produkte/fritzdect/fritzdect-301/\">FRITZ!DECT 301 Thermostate</a> der Firma AVM zugelegt, um meine Heizung sparsamer zu machen.</p>\n<p>Und dann bin ich dummerweise auf <a href=\"https://www.home-assistant.io/\">Home Assistant</a> aufmerksam gemacht worden, mit dem man die etwas spartanischen Möglichkeiten der Thermostate gewaltig aufbohren kann.</p>\n<p>Begleitet mich auf meiner Reise in den Kaninchenbau.</p>\n<!-- more -->\n<h2 id=\"more\">FRITZ!DECT verstehen</h2>\n<p>Bei der Steuerung der Thermostate ist wichtig zu wissen, dass der Home Assistant (wie auch die FRITZ!Box selber) nur in festen Intervallen Aufträge an die Thermostate übertragen kann. Im schlimmsten Fall dauert es bis zu 15 Minuten, bis euer Auftrag dort angekommen ist. Wenn ihr also Automatisierungen oder eine Steuerung bastelt, müsst ihr etwas Vorlauf in Kauf nehmen.</p>\n<p>Meine Philosophie bei der Integration des Home Assistant war wie folgt:</p>\n<ol>\n<li>Die Zeitpläne der Thermostate werden primär über die FRITZ!Box gesteuert. Diese Zeitpläne werden punktgenau vom Thermostat ausgeführt.</li>\n<li>Der Home Assistant verbessert diese Zeitpläne um Ausnahmen oder zusätzliche Szenarien. In jedem Szenario müsst ihr aber (neben dem oben erwähnten Vorlauf) bedenken, dass der nächste in der FRITZ!Box hinterlegte Schaltpunkt wieder den Thermostat zurücksetzen wird. Das kann aber auch sehr praktisch sein, zum Beispiel als verlässlicher Reset. Beispiele dafür sind Szenarien wie „Heute ist länger Betrieb im Wohnzimmer“ oder „An Arbeitstagen kann die Heizung in der Küche früher starten“.</li>\n<li>Bei anderen Einsatzideen kann die Koordination zwischen FRITZ!Box und Home Assistant zu kompliziert werden. Hier löscht man einfach die Zeitpläne in der FRITZ!Box und steuert nur noch über den Home Assistant. Beispiel dafür ist die Heizung im Büro, die nur an Arbeitstagen geschaltet werden soll – oder wenn ich außerhalb der Arbeitszeiten meinen Rechner eingeschaltet habe. Hier können aber zumindest die Vorlagen in der FRITZ!Box helfen, die man aus dem Home Assistant dann triggern kann.</li>\n</ol>\n<h2 id=\"regler-verbessern\">Regler verbessern</h2>\n<p>Nach der Installation wird man von den etwas überzüchteten Heizkörperreglern in der Oberfläche des Home Assistant begrüßt. Meine Regler sollen nur aus drei Teilen bestehen:</p>\n<ol>\n<li>Dem eigentlich Temperatur-Regler (verbunden mit der Anzeige des aktuellen Modus und der aktuell gemessenen Temperatur),</li>\n<li>einem Knopf für den Spar-Modus,</li>\n<li>und einem Knopf für den Komfort-Modus.</li>\n</ol>\n<p>Das ist tatsächlich schön konfigurativ zu lösen…</p>\n<p><img src=\"https://journal.3960.org/posts/2022-11-08-fritz-dect-301-home-assistant/ha-301-config-400x225.png\" class=\"default\" width=\"400\" height=\"225\" style=\"--aspect-ratio: 16/9;\" alt=\"\" /></p>\n<p>…oder mit dem folgendem YAML als schnelles Rezept für das <strong>Dashboard</strong>:</p>\n<pre><code class=\"language-yaml\"><u># Replace all occurences of `wohnzimmer` with your thermostat's identifier</u>\n<i>type</i>: thermostat\n<i>features</i>:\n  - <i>style</i>: icons\n    <i>preset_modes</i>:\n      - eco\n      - comfort\n    <i>type</i>: climate-preset-modes\n<i>entity</i>: climate.wohnzimmer\n</code></pre>\n<p>(<strong>Update 2024–02</strong>: Die neuen Konfigurationsmöglichkeiten des Home Assistant haben den Einbau weiterer Knöpfe deutlich vereinfacht.)</p>\n<h2 id=\"temperatur-am-thermostat-anzeigen\">Temperatur am Thermostat anzeigen</h2>\n<p>Durch den <a href=\"https://www.home-assistant.io/\">Home Assistant</a> werden die <a href=\"https://avm.de/produkte/fritzdect/fritzdect-301/\">FRITZ!DECT 301 Thermostate</a> folgerichtig als Thermostate erkannt. Tatsächlich beinhalten sie aber auch einen Temperatur-Sensor, den man mit etwas Bastelei auch im Dashboard anzeigen kann.</p>\n<p>Mit dem <a href=\"https://community.home-assistant.io/t/home-assistant-community-add-on-visual-studio-code/107863\">Home Assistant Community Add-on: Visual Studio Code</a> kann die <code>configuration.yaml</code> um die folgenden Zeilen erweitern werden:</p>\n<pre><code class=\"language-yaml\"><u># Converting thermostats into thermometers</u>\n<u># Replace all occurences of `wohnzimmer` with your thermostat's identifier</u>\n<i>template</i>:\n  - <i>sensor</i>:\n      - <i>name</i>: <kbd>&quot;Wohnzimmer Heizung Temperatur&quot;</kbd>\n        <i>unique_id</i>: wohnzimmer_heizung_temperatur\n        <i>state</i>: <kbd>&quot;{{ state_attr('climate.wohnzimmer', 'current_temperature') }}&quot;</kbd>\n        <i>unit_of_measurement</i>: <kbd>&quot;°C&quot;</kbd>\n        <i>device_class</i>: temperature\n</code></pre>\n<p>Danach können diese Sensoren im <strong>Dashboard</strong> angezeigt werden:</p>\n<pre><code class=\"language-yaml\"><u># Replace all occurences of `wohnzimmer` with your thermostat's identifier</u>\n<i>type</i>: gauge\n<i>entity</i>: sensor.wohnzimmer_heizung_temperatur\n<i>min</i>: <em>10</em>\n<i>max</i>: <em>32</em>\n<i>severity</i>:\n  <i>green</i>: <em>21</em>\n  <i>yellow</i>: <em>23</em>\n  <i>red</i>: <em>25</em>\n</code></pre>\n<h2 id=\"urlaubsmodus-sichtbar-machen\">Urlaubsmodus sichtbar machen</h2>\n<p>Die <a href=\"https://avm.de/produkte/fritzdect/fritzdect-301/\">FRITZ!DECT 301 Thermostate</a> können in einen Urlaubsmodus geschickt werden – ein Zustand, der im Home Assistant ebenfalls ausgelesen werden kann. Besonders luxuriös geschieht das mit einem eigenen Binär-Sensor.</p>\n<p>Mit dem <a href=\"https://community.home-assistant.io/t/home-assistant-community-add-on-visual-studio-code/107863\">Home Assistant Community Add-on: Visual Studio Code</a> kann die <code>configuration.yaml</code> um die folgenden Zeilen erweitern werden:</p>\n<pre><code class=\"language-yaml\"><u># Replace all occurences of `wohnzimmer` with your thermostat's identifier</u>\n<i>template</i>:\n  - <i>binary_sensor</i>:\n      - <i>name</i>: <kbd>&quot;Wohnzimmer Heizung Urlaubsmodus&quot;</kbd>\n        <i>unique_id</i>: wohnzimmer_heizung_urlaubsmodus\n        <i>state</i>: <kbd>&quot;{{ state_attr('climate.wohnzimmer', 'holiday_mode') }}&quot;</kbd>\n        <i>icon</i>: <kbd>&quot;mdi:bag-checked&quot;</kbd>\n</code></pre>\n<p>Analog lässt sich auch der Sommermodus der Heizung in der <code>configuration.yaml</code> als eigener Sensor einrichten:</p>\n<pre><code class=\"language-yaml\"><u># Replace all occurences of `wohnzimmer` with your thermostat's identifier</u>\n<i>template</i>:\n  - <i>binary_sensor</i>:\n      - <i>name</i>: <kbd>&quot;Wohnzimmer Heizung Sommermodus&quot;</kbd>\n        <i>unique_id</i>: wohnzimmer_heizung_sommermodus\n        <i>state</i>: <kbd>&quot;{{ state_attr('climate.wohnzimmer', 'summer_mode') }}&quot;</kbd>\n        <i>icon</i>: <kbd>&quot;mdi:hvac-off&quot;</kbd>\n</code></pre>\n<h2 id=\"regelung-für-das-home-office\">Regelung für das Home Office</h2>\n<p>In der FRITZ!Box hatte ich die Steuerung meiner Büro-Heizung bisher stumpf an die Wochentage Montags bis Freitag gekoppelt. So lief die Heizung auch, wenn ein Feiertag das eigentlich unnötig machte. Höchste Zeit also für den <a href=\"https://www.home-assistant.io/integrations/workday/\">Arbeitstag-Sensor</a>.</p>\n<p>Mit dem <a href=\"https://community.home-assistant.io/t/home-assistant-community-add-on-visual-studio-code/107863\">Home Assistant Community Add-on: Visual Studio Code</a> kann die <code>configuration.yaml</code> um die folgenden Zeilen erweitern werden:</p>\n<pre><code class=\"language-yaml\"><u># Workday sensor</u>\n<i>binary_sensor</i>:\n  - <i>platform</i>: workday\n    <i>country</i>: DE\n    <i>province</i>: NI <u># Niedersachsen, Lower Saxony</u>\n</code></pre>\n<p>Der Home Assistant kann nun die Programmierung der FRITZ!Box verbessern. Dafür wird in der FRITZ!Box die Heizung zu 100% in den Spar-Modus geschickt, weil ab sofort der Home Assistant die Heizung auf den Komfort-Modus schaltet, wenn ein Arbeitstag vorliegt.</p>\n<p>Vorher legen wir uns einen Zeitplan an, den wir in folgende <strong>Automatisierung</strong> einbinden:</p>\n<pre><code class=\"language-yaml\"><u># Replace all occurences of `office` with your thermostat's identifier</u>\n<u># `device_id` has to be assigned via GUI</u>\n<i>alias</i>: <kbd>&quot;Home Office&quot;</kbd>\n<i>description</i>: Only trigger comfort mode on work days\n<i>trigger</i>:\n  - <i>platform</i>: state\n    <i>entity_id</i>:\n      - binary_sensor.office_heizung_home_office\n<i>condition</i>:\n  - <i>condition</i>: and\n    <i>conditions</i>:\n      - <i>condition</i>: state\n        <i>entity_id</i>: binary_sensor.workday_sensor\n        <i>state</i>: <kbd>&quot;on&quot;</kbd>\n      - <i>condition</i>: state\n        <i>entity_id</i>: binary_sensor.office_heizung_urlaubsmodus\n        <i>state</i>: <kbd>&quot;off&quot;</kbd>\n<i>action</i>:\n  - <i>if</i>:\n      - <i>condition</i>: state\n        <i>state</i>: <kbd>&quot;on&quot;</kbd>\n        <i>entity_id</i>: binary_sensor.office_heizung_home_office\n    <i>then</i>:\n      - <i>device_id</i>: b46c4851235fb8c90f4a659b6e9a953a\n        <i>domain</i>: climate\n        <i>entity_id</i>: climate.office\n        <i>type</i>: set_preset_mode\n        <i>preset_mode</i>: comfort\n    <i>else</i>:\n      - <i>device_id</i>: b46c4851235fb8c90f4a659b6e9a953a\n        <i>domain</i>: climate\n        <i>entity_id</i>: climate.office\n        <i>type</i>: set_preset_mode\n        <i>preset_mode</i>: eco\n    <i>enabled</i>: <samp>true</samp>\n<i>mode</i>: single\n</code></pre>\n<p>Hier können aber auch die Vorlagen in der FRITZ!Box hilfreich sein, um aus dem Home Assistant in der FRITZ!Box komplexere Szenarien auslösen zu können.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=FRITZ!DECT%20301%20im%20Home%20Assistant&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2022-11-08-fritz-dect-301-home-assistant%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Heizungssteuerung ist in aller Munde. Als Besitzer einer FRITZ!Box habe ich mir also ein paar FRITZ!DECT 301 Thermostate der Firma AVM zugelegt, um meine…",
      "date_published": "2022-11-08T18:17:23+01:00",
      "date_modified": "2024-01-05T12:46:57+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2022-11-08-fritz-dect-301-home-assistant/ha-301.png",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2022-11-08-fritz-dect-301-home-assistant/ha-301.png",
      "tags": [
        "Home Assistant",
        "Programmierung",
        "Technologie",
        "The Cool",
        "AVM",
        "Homeoffice"
      ]
    },
    {
      "id": "user/posts/2021-07-14-retro-flugsimulation-tiny-combat-arena-anflug/index.md",
      "url": "https://journal.3960.org/posts/2021-07-14-retro-flugsimulation-tiny-combat-arena-anflug/",
      "title": "Retro-Flugsimulation „Tiny Combat Arena“ im Anflug",
      "content_html": "<p>MicroProse ist zurück – und macht seinem Erbe alle Ehre:</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"Der Tiny Combat Arena-Trailer macht Laune!\" src=\"https://www.youtube-nocookie.com/embed/Bi-9YJXzzJo?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/Bi-9YJXzzJo?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/Bi-9YJXzzJo/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/Bi-9YJXzzJo/hqdefault.jpg\" --></div>\n<p>Mit <a href=\"https://www.microprose.com/games/tiny-combat-arena/\"><i>Tiny Combat Arena</i></a> ist MicroProse Publisher für ein „low poly“ Kampfflugzeug-Simulator geworden, der richtig spannend klingt.</p>\n<!-- more -->\n<p id=\"more\"><i>Tiny Combat Arena</i> von Entwickler Brian Hernandez (auch bekannt als <a href=\"https://twitter.com/Why485\">Why485 auf Twitter</a> und <a href=\"https://why485.itch.io/\">itch.io</a>) versucht, das beste der Kampfflugzeug-Simulationen der 80er und 90er zu einem neuen Paket zu bündeln: Eine nicht übermäßig komplexe Simulation, bei der man einfach mal ein paar Dinge in die Luft sprengen kann, verbunden mit einer dynamischen Kampagne.</p>\n<p>Das wichtigste Fluggerät in der Simulation ist der <a href=\"https://en.wikipedia.org/wiki/McDonnell_Douglas_AV-8B_Harrier_II\">AV-8B Harrier II</a>.</p>\n<p>Was aufgrund des kleinen Entwicklungsteams erstmal nicht umgesetzt wird, ist Multiplayer und Virtual Reality (siehe auch die <a href=\"https://steamcommunity.com/app/1347550/discussions/0/3044979493852620982/\">FAQ on <i>Tiny Combat Arena</i></a>). Hier bleibt uns die Hoffnung, dass das Spiel einschlägt wie eine Bombe, und zusätzlicher Aufwand für solche Erweiterungen gerechtfertigt erscheint. Ähnlich wie bei <a href=\"https://journal.3960.org/posts/2018-11-05-house-the-dying-sun-beinharte-raumjaeger-action/\">House of the Dying Sun</a> könnte der Umfang des Simulators aber bewusst spartanisch bleiben.</p>\n<p>Andersherum lehnt sich <i>Tiny Combat Arena</i> an große Vorbilder aus der Goldenen Zeit der Flugsimulatoren an, wie zum Beispiel:</p>\n<div class=\"table-wrapper\"><table>\n<thead>\n<tr>\n<th>Titel</th>\n<th>Hersteller</th>\n<th>Jahr</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><a href=\"https://www.mobygames.com/game/chuck-yeagers-air-combat\">Chuck Yeager&#39;s Air Combat</a></td>\n<td>Electronic Arts</td>\n<td>1991</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/f-117a-nighthawk-stealth-fighter-20\">F-117A</a></td>\n<td>MicroProse</td>\n<td>1991</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/falcon-30\">Falcon 3.0</a></td>\n<td>Spectrum Holobyte</td>\n<td>1991</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/tornado\">Tornado</a></td>\n<td>Digital Integrations</td>\n<td>1993</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/combat-air-patrol\">Combat Air Patrol</a></td>\n<td>Psygnosis</td>\n<td>1993</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/dos/ef-2000\">EF 2000</a></td>\n<td>Digital Image Design</td>\n<td>1995</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/a-10-cuba\">A-10 Cuba</a></td>\n<td>Activision</td>\n<td>1996</td>\n</tr>\n<tr>\n<td><a href=\"https://www.mobygames.com/game/fa-18-hornet-30\">F/A-18 3.0</a></td>\n<td>Graphic Simulations Corporation</td>\n<td>1997</td>\n</tr>\n</tbody></table></div>\n<p>Auf <a href=\"https://why485.itch.io/\">itch.io</a> kann man übrigens sehen, wie sehr Hernandez von Low-Poly-Flugsimulationen begeistert ist: Dort findet sich unter anderem <a href=\"https://why485.itch.io/tiny-combat-arena\">ein früher Prototyp von <i>Tiny Combat Arena</i></a>.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Retro-Flugsimulation%20%E2%80%9ETiny%20Combat%20Arena%E2%80%9C%20im%20Anflug&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2021-07-14-retro-flugsimulation-tiny-combat-arena-anflug%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "MicroProse ist zurück – und macht seinem Erbe alle Ehre:\n\nMit Tiny Combat Arena ist MicroProse Publisher für ein „low poly“ Kampfflugzeug-Simulator geworden,…",
      "date_published": "2021-07-14T18:40:15+02:00",
      "date_modified": "2021-07-14T20:49:20+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/Bi-9YJXzzJo/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/Bi-9YJXzzJo/hqdefault.jpg",
      "tags": [
        "Simulation",
        "Fliegerei",
        "DCS",
        "Spiel",
        "The Cool",
        "Virtual Reality"
      ]
    },
    {
      "id": "user/posts/2021-03-04-wie-microsoft-sich-augmented-reality-vorstellt/index.md",
      "url": "https://journal.3960.org/posts/2021-03-04-wie-microsoft-sich-augmented-reality-vorstellt/",
      "title": "Wie Microsoft sich Augmented Reality in 2021 vorstellt",
      "content_html": "<p>Als Fortsetzung von <a href=\"https://journal.3960.org/posts/wie-fuhlt-sich-augmented-reality-an/\">Microsofts Überlegungen zu Augmented Reality</a>:</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"Introducing Microsoft Mesh\" src=\"https://www.youtube-nocookie.com/embed/Jd2GK0qDtRg?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/Jd2GK0qDtRg?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/Jd2GK0qDtRg/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/Jd2GK0qDtRg/hqdefault.jpg\" --></div>\n<p>Auch wenn es nicht im Fokus des Videos steht: Interessant ist die Verknüpfung von Headsets für Augmented-Reality (z.B. die <a href=\"https://www.microsoft.com/de-de/hololens\"><i>Microsoft HoloLens</i></a>) und Virtual-Reality zu einer gemeinsamen Umgebung.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Wie%20Microsoft%20sich%20Augmented%20Reality%20in%202021%20vorstellt&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2021-03-04-wie-microsoft-sich-augmented-reality-vorstellt%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Als Fortsetzung von Microsofts Überlegungen zu Augmented Reality:\n\nAuch wenn es nicht im Fokus des Videos steht: Interessant ist die Verknüpfung von Headsets…",
      "date_published": "2021-03-04T18:56:34+01:00",
      "date_modified": "2021-03-17T17:38:48+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/Jd2GK0qDtRg/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/Jd2GK0qDtRg/hqdefault.jpg",
      "tags": [
        "Virtual Reality",
        "Technologie",
        "The Cool",
        "Geckobar"
      ]
    },
    {
      "id": "user/posts/2020-05-17-ausstattung-fuer-home-office/index.md",
      "url": "https://journal.3960.org/posts/2020-05-17-ausstattung-fuer-home-office/",
      "title": "Die Ausstattung für das Home-Office",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2020-05-17-ausstattung-fuer-home-office/homeoffice-400x225.jpg\" class=\"default\" width=\"400\" height=\"225\" style=\"--aspect-ratio: 16/9;\" alt=\"\" /></p>\n<p>Mit wenigen Handgriffen kann man den häuslichen Arbeitsplatzes (aka „Home Office“) deutlich angenehmer und produktiver gestalten.</p>\n<!-- more -->\n<p id=\"more\">In der Regel erhält man von seinem Arbeitgeber einen Laptop nebst Netzteil ausgehändigt – für ein echtes Büro braucht es aber dann doch etwas mehr als einen Tisch, einen Stuhl und eine Lampe. </p>\n<p>Inspiriert von den <a href=\"https://m.signalvnoise.com/remote-working-the-home-office-desks-of-basecamp/\">Home-Offices von <i>Basecamp</i>-Mitarbeitern</a> folgt hier eine Liste der Dinge, mit der der heimische Arbeitsplatz deutlich angenehmer werden kann.</p>\n<p>Grundsätzlich muss das Home-Office folgende Eigenschaften erfüllen:</p>\n<ul>\n<li>Längeres Arbeiten muss mindestens genau so angenehm möglich sein wie in einem regulären Büro.</li>\n<li>Um vom Home-Office ins normale Büro zu wechseln sollten möglichst wenig Handgriffe nötig sein.</li>\n</ul>\n<h2 id=\"ein-vernünftiger-schreibtischstuhl\">Ein <em>vernünftiger</em> Schreibtischstuhl</h2>\n<p>Home-Office-Arbeit ist sitzende Arbeit – mehr noch als normale Büro-Arbeit. Und so sollte für die 35–40 Stunden pro Woche der Arbeitsplatz so ergonomisch wie möglich eingerichtet werden. Dreh- und Angelpunkt ist ein vernünftiger Schreibtischstuhl.</p>\n<p>Ein Küchenstuhl oder billiger Schreibtischstuhl (ohne verstellbare Rücken- und Armlehnen) kann das Arbeiten aber schnell zur Tortur machen. Tatsächlich ist ein guter Schreibtischstuhl in der Regel eine nicht unerhebliche Investition – aber eine kleine dreistellige Summe ist hier langfristig betrachtet eine gute Investition in die eigene Rückengesundheit.</p>\n<h2 id=\"einen-echten-monitor-für-das-notebook\">Einen echten Monitor für das Notebook</h2>\n<p>Ein anständiger Monitor vergrößert nicht nur die Bildschirmfläche, sonder erlaubt ein ergonomischeres Sitzen bei der Arbeit. Monitore ab 23 Zoll aufwärts sind zu erschwinglichen Preisen zu haben. Wenn man sowieso einen heimischen PC besitzt, hat man möglicherweise auch bereits einen Kandidaten für den Zweitmonitor herumstehen. Denn an vielen Monitoren gibt es mehrere Monitor-Eingänge.</p>\n<p>So kann man heimischen PC und Arbeits-Laptop <em>gleichzeitig</em> anschließen, und am Monitor die gerade aktuelle Quelle auswählen – oder der Monitor ist sogar so schlau, auf die zuletzt aktive Quelle zu wechseln.</p>\n<h3 id=\"der-monitor-als-docking-station\">Der Monitor als Docking-Station</h3>\n<p>Falls ihr dagegen einen neuen Monitor anschaffen müsst, lohnt eine kurze Überprüfung, ob euer Laptop nicht DisplayPort via USB-C beherrscht. In diesem Falle kann ein USB-C-Monitor angeschafft werden. Im günstigsten Fall hat der Monitor einen USB-Hub integriert, der gleichzeitig als einfache Docking-Station fungiert – weiteres Zubehör für euren Laptop wird nicht an dem Laptop selber eingestöpselt, sondern am Monitor!</p>\n<h2 id=\"eine-anständige-tastatur--maus\">Eine anständige Tastatur &amp; Maus</h2>\n<p>Die meisten Laptop-Tastaturen und ihre eingebauten Trackpads eignen sich nur bedingt für längere Tipp-Arbeiten. Schon preisgünstige Tastaturen (wie z.B. die Cherry Stream 3.0 ab ~€20,-) machen nicht nur das Tippen einfacher, sondern bieten auch Medienknöpfe, mit denen man z.B. laufende Musik schnell für ein Telefonat pausieren kann.</p>\n<p>Gleiches gilt für preisgünstige Mäuse (wie z.B. die Logitech M500 ab ~€20,-) – zusätzliche Bedienmöglichkeiten wie ein Scrollrad oder die praktische „Zurück“-Taste erleichtern die Bildschirm-Arbeit ungemein.</p>\n<h3 id=\"kabellos-für-mehrere-rechner-gleichzeitig\">Kabellos für mehrere Rechner gleichzeitig</h3>\n<p>Wenn (wie in meinem Fall) noch ein zweiter Rechner auf dem Schreibtisch steht, kann man entweder mehrere Tastaturen und Mäuse anschaffen. Es gibt aber auch Funktastaturen und -mäuse (wie die <a href=\"https://www.logitech.com/de-de/mx/master-series.html\" rel=\"nomention\">Logitech MX-Serie</a>), die problemlos zwischen mehreren Empfängern hin- und herschalten können. Damit liegt nur eine Tastatur und eine Maus auf eurem Schreibtisch, die sich Heim- oder Arbeits-PC verbinden können.</p>\n<h2 id=\"ein-laptop-ständer\">Ein Laptop-Ständer</h2>\n<p>Selbst wenn der Laptop an einen Monitor angeschlossen ist, kann er trotzdem weiterhin als Zweit-Monitor dienen. Da mit angeschlossener Maus und Tastatur die Tastatur des Notebooks nicht mehr benötigt wird, kann das Notebook auch in eine ergonomischere Position gebracht werden.</p>\n<p>Dafür gibt es entweder einen Stapel Bücher – oder einen Laptop-Ständer (wie z.B. der Nulaxy C3 ab ~€35,-). Die meisten Laptop-Ständer erzeugen dabei unterhalb des Laptops einen Freiraum, in dem man zusätzliche Dinge ablegen kann – wie zum Beispiel Maus und Tastatur, wenn sie nicht mehr in Verwendung sind. Und ganz nebenbei verbessert die Luft unter dem Laptop die Belüftung bzw. Kühlung des Laptops.</p>\n<h2 id=\"kopfhörer-mit-mikrofon\">Kopfhörer mit Mikrofon</h2>\n<p>Für Telefonate und Videokonferenzen sind die in Notebook eingebauten Mikrofone meist nur ein Notbehelf. Interessanterweise ist bei so ziemlich jedem modernen Notebook der eingebaute 3,5mm-Klinkenstecker nicht nur für normale Kopfhörer geeignet, sondern vor allen Dingen für die von Smartphones bekannten Kombinationen aus Kopfhörern und Mikrofonen.</p>\n<p>Die Klinken an dem Kopfhörer unterscheiden sich darin, dass sie statt zwei schwarzer Ringe auf dem blanken Teil des Steckers <em>drei</em> Ringe haben. In das Notebook eingesteckt wird dann nicht nur die Audio-Ausgabe in die Kopfhörer gelenkt, sondern die Aufnahme über das Mikrofon des Kopfhörers abgewickelt.</p>\n<p>Ihr könnt also den bei eurem Smartphone mitgelieferten Kopfhörer mit 3,5mm-Klinke einfach in euer Notebook einstecke. Das kostet euch keinen Cent und ist zumeist eine überraschend leistungsfähige Lösung.</p>\n<p>Und falls ihr schon einen Bluetooth-Kopfhörer mit integrierten Mikrofon besitzt: Die meisten Notebooks haben ebenfalls Bluetooth eingebaut, so dass ihr diese Kopfhörer ebenfalls mit all ihren Features am Notebook nutzen könnt.</p>\n<h2 id=\"die-billige-docking-station---ein-usb-hub\">Die billige Docking-Station – ein USB-Hub</h2>\n<p>Wenn ihr mit eurem Notebook öfter zwischen Arbeitsplätzen wechselt, kann die Umstöpselei etwas nerven. Folgende Anschlüsse müssen dann imer wieder angedockt werden:</p>\n<ul>\n<li>Strom</li>\n<li>Monitor(e)</li>\n<li>Netzwerk (wenn nicht WLAN verwendet wird)</li>\n<li>Maus und Tastatur (wenn nicht Funk verwendet wird)</li>\n<li>Kopfhörer und Mikrofon (wenn nicht Bluetooth verwendet wird)</li>\n</ul>\n<p>Anstatt sich eine teure (und meist nur für den aktuellen Laptop geeignete) Docking-Station zuzulegen, kann ein USB-Hub (ab €10,-) schon Wunder wirken, um die Anzahl der benötigten Kabel zu reduzieren. Einen schon vorhandenen USB-Hub kann man übrigens preisgünstig zu einer Dockingstation aufrüsten, indem man folgende USB- beziehungsweise USB-C-Zubehörteile ansteckt:</p>\n<ul>\n<li>USB-Netzwerkadapter</li>\n<li>USB-Soundkarte (oder ein USB-Headset)</li>\n<li>USB-Bluetooth-Adapter (falls an dem angedockten Notebook nicht sowieso ein Bluetooth-Empfänger vorhanden ist)</li>\n</ul>\n<p>Falls euch der Sinn weniger nach Bastelei ist: Auch hier lohnt eine kurze Überprüfung, ob euer Laptop USB-C beherrscht. Schon preisgünstige USB-C-Hubs (ab ~€30,-) bieten nicht nur die Möglichkeit, weitere USB-Geräte anzuschließen, sondern auch Netzwerkkabel, Kopfhörer oder (<a href=\"https://www.heise.de/ct/artikel/USB-C-Der-Alleskoenner-3836662.html\">je nach USB-C-Anschluss</a>) Monitore.</p>\n<h3 id=\"eine-echte-dockingstation-für-maximal-wenig-stöpselei\">EIne echte Dockingstation für maximal wenig Stöpselei</h3>\n<p>Etwas teurer sind dann USB-C-Hubs mit Power Delivery, die euren Laptop mit Strom versorgen können. Hier müsst ihr aber überprüfen, ob euer Laptop auch <a href=\"https://www.heise.de/ct/artikel/USB-C-Der-Alleskoenner-3836662.html\">über den USB-C-Port geladen werden kann</a>, und wieviel Watt er für den Betrieb benötigt. In den meisten Fällen wird man um eine Original-Dockingstation nicht herum kommen, wenn die Stromversorgung gewährleistet sein soll.</p>\n<h2 id=\"fazit\">Fazit</h2>\n<p>Die Regelungen für die <a href=\"https://www.tk.de/techniker/magazin/sport/gesunder-ruecken/ruecken-fit-am-pc-2009246\" rel=\"nomention\">ergonomische Einrichtung von Arbeitsplätzen</a> sollten auch (oder gerade) daheim beherzigt werden. Mit ein paar kleinen Investitionen und Teilen, die man wahrscheinlich sowieso daheim herumliegen hat, ist das schnell bewerkstelligt.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Die%20Ausstattung%20f%C3%BCr%20das%20Home-Office&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-05-17-ausstattung-fuer-home-office%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Mit wenigen Handgriffen kann man den häuslichen Arbeitsplatzes (aka „Home Office“) deutlich angenehmer und produktiver gestalten.",
      "date_published": "2020-05-17T19:42:53+02:00",
      "date_modified": "2021-10-12T09:41:03+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2020-05-17-ausstattung-fuer-home-office/homeoffice.jpg",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2020-05-17-ausstattung-fuer-home-office/homeoffice.jpg",
      "tags": [
        "Homeoffice",
        "Geckobar",
        "Idee",
        "Programmierung",
        "Technologie",
        "The Cool",
        "Webdevelop"
      ]
    },
    {
      "id": "user/posts/2020-05-16-militaerische-senseo-kaffeemaschine/index.md",
      "url": "https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/",
      "title": "Die militärische Senseo-Kaffeemaschine",
      "content_html": "<p><a href=\"https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/military-senseo.jpg\" class=\"gallery__link\" title=\"Die militärische Senseo\"><img src=\"https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/military-senseo-240x320.jpg\" class=\"portrait\" width=\"240\" height=\"320\" style=\"--aspect-ratio: 3/4;\" alt=\"Die militärische Senseo\" /></a></p>\n<p>Meine kleine Senseo-Kaffeemaschine begleitet mich seit über zehn Jahren. Liebevoll oliv lackiert, hat sie auch ein paar passende Knopf-Beschriftungen bekommen. Oder soll ich lieber sagen…</p>\n<p><a href=\"https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/senseo_panel-640x288.png\" class=\"gallery__link\" title=\"Selektoren für die militärische Senseo\"><img src=\"https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/senseo_panel-640x288-400x225.png\" class=\"default\" width=\"400\" height=\"225\" style=\"--aspect-ratio: 16/9;\" alt=\"Selektoren für die militärische Senseo\" /></a></p>\n<p>…Selektoren?</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Die%20milit%C3%A4rische%20Senseo-Kaffeemaschine&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-05-16-militaerische-senseo-kaffeemaschine%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Meine kleine Senseo-Kaffeemaschine begleitet mich seit über zehn Jahren. Liebevoll oliv lackiert, hat sie auch ein paar passende Knopf-Beschriftungen bekommen…",
      "date_published": "2020-05-16T19:41:52+02:00",
      "date_modified": "2020-06-23T17:39:24+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/military-senseo.jpg",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2020-05-16-militaerische-senseo-kaffeemaschine/military-senseo.jpg",
      "tags": [
        "Homeoffice",
        "Geckobar",
        "Idee",
        "Lustiges",
        "The Cool",
        "Kaffee"
      ]
    },
    {
      "id": "user/posts/2020-05-07-schiffe-abwracken-weltall-hardspace-shipbreaker/index.md",
      "url": "https://journal.3960.org/posts/2020-05-07-schiffe-abwracken-weltall-hardspace-shipbreaker/",
      "title": "Schiffe abwracken im Weltall: „Hardspace: Shipbreaker“",
      "content_html": "<p>Das kleine Studio <a href=\"https://blackbirdinteractive.com/\">Blackbird Interactive</a> schickt sich an, mal wieder ein Raumfahrt-Spiel zu bauen.</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=sDPgI9vkmYg\" src=\"https://www.youtube-nocookie.com/embed/sDPgI9vkmYg?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/sDPgI9vkmYg?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/sDPgI9vkmYg/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/sDPgI9vkmYg/hqdefault.jpg\" --></div>\n<p>In <a href=\"https://store.steampowered.com/app/1161580/Hardspace_Shipbreaker/\"><i>Hardspace: Shipbreaker</i></a> steckt ihr in den Schuhen bzw. im Anzug eines einzelnen Astronauten, dessen Aufgabe es ist, Schiffe abzuwracken, indem er sie in handliche Teile sägt – und das ist nach den ersten Blicken eine sehr unterhaltsame Aufgabe.</p>\n<!-- more -->\n<p id=\"more\">Der Trailer bringt dabei das Gefühl der Schwerelosigkeit und die Physik des Weltraums gut rüber. Und die mechanischen Designs sehen einfach fantastisch aus – kein Wunder, sind doch viele der Entwickler vom <i>Homeworld</i>-Studio „Relic Entertainment“ herüber gewechselt, und haben auch schon an <i>Homeworld: Deserts of Kharak</i> mitgearbeitet (das zwischenzeitlich auch mal <i>Homeworld: Shipbreakers</i> hieß).</p>\n<p>Das ganze Setting bringt Erinnerungen an das leider gescheiterte Spiel <a href=\"https://www.kickstarter.com/projects/1035580424/blackspace-plan-dig-defend-survive\"><i>Blackspace</i></a> hervor – auch hier gab es Weltraum-Physik und kernige Action in einer optisch gefälligen Packung.</p>\n<p>Blackbird Interactive hat bereits einige <a href=\"https://www.youtube.com/watch?v=nayO_seulRM&amp;list=PLjbma_6dYNT0AgiO0Ad25j5uD0r9bHzf6\">launige Videos für die Einführung neuer <i>Hardspace: Shipbreaker</i>-Abwrack-Astronauten</a> in ihren Job veröffentlicht.</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"…wie zum Beispiel dieses Video über die Gefahren von Elektrizität auf Raumschiffen.\" src=\"https://www.youtube-nocookie.com/embed/nayO_seulRM?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/nayO_seulRM?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/nayO_seulRM/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/nayO_seulRM/hqdefault.jpg\" --></div>\n<p>Aktuell konzentriert sich das kleine Studio auf das Kernspiel – ob und wann Unterstützung für Multiplayer oder Virtual Reality hinzukommen, ließen die Entwickler bisher offen.</p>\n<p>Das Spiel <a href=\"https://store.steampowered.com/app/1161580/Hardspace_Shipbreaker/\"><i>Hardspace: Shipbreaker</i> ist jetzt schon bei Steam gelistet</a>. Alles in allem können sich „Hard Sci-Fi“-Fans mal wieder auf ein Spiel freuen, bei dem sie ihre Kenntnisse aus <i>Kerbal Space Program</i> gut gebrauchen können.</p>\n<h2 id=\"übrigens\">Übrigens…</h2>\n<p>…gibt es noch andere Spiele am Horizont, die „echtes“ Weltraum-Feeling versprechen:</p>\n<ul>\n<li><a href=\"https://www.kerbalspaceprogram.com/game/kerbal-space-program-2/\"><i>Kerbal Space Program 2</i></a>, der zweite Teil zu dem erfolgreichen Bau-dein-eigenes-Raumfahrtprogramm mit den kleinen grünen Kerbalnauten</li>\n<li><a href=\"https://www.youtube.com/watch?v=G4qMsE8ZaQ8\"><i>Boundary</i></a>, ein 0g-Space-Shooter, in dem einzelne Astronauten mit ihrem Arsenal rund um Raumstationen ihre Streitigkeiten austragen</li>\n</ul><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Schiffe%20abwracken%20im%20Weltall%3A%20%E2%80%9EHardspace%3A%20Shipbreaker%E2%80%9C&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-05-07-schiffe-abwracken-weltall-hardspace-shipbreaker%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Das kleine Studio Blackbird Interactive schickt sich an, mal wieder ein Raumfahrt-Spiel zu bauen.\n\nIn Hardspace: Shipbreaker steckt ihr in den Schuhen bzw. im…",
      "date_published": "2020-05-07T19:10:34+02:00",
      "date_modified": "2020-05-07T21:35:21+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/sDPgI9vkmYg/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/sDPgI9vkmYg/hqdefault.jpg",
      "tags": [
        "Spiel",
        "Raumfahrt",
        "The Cool",
        "Virtual Reality"
      ]
    },
    {
      "id": "user/posts/2020-04-22-starlink-satelliten-beobachten/index.md",
      "url": "https://journal.3960.org/posts/2020-04-22-starlink-satelliten-beobachten/",
      "title": "Starlink-Satelliten beobachten",
      "content_html": "<p>Aktuell sind mit dem bloßen Augen die Starlink-Satelliten von SpaceX gut zu sehen. Das Schauspiel sieht sehr beeindruckend aus:</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=h-S67Y7gEeY\" src=\"https://www.youtube-nocookie.com/embed/h-S67Y7gEeY?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/h-S67Y7gEeY?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/h-S67Y7gEeY/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/h-S67Y7gEeY/hqdefault.jpg\" --></div>\n<!-- more -->\n<h2 id=\"more\">Was ist denn so besonders an den Starlink-Satelliten?</h2>\n<p>Einen einzelnen Satelliten oder auch mal die ISS am Himmel zu sehen ist schwierig genug. Mit <a href=\"https://www.starlink.com/\" rel=\"nomention\">Starlink-Satelliten</a> hat man da deutlich mehr Glück, denn die Idee ihres Erfinders Elon Musk war, sehr viele von ihnen sehr tief über der Erde kreisen zu lassen. Am Himmel bilden sie dann die sogenannten „Starlink-Trains“, eine gut erkennbare Kette an Leuchtpunkten, die mit hoher Geschwindigkeit hintereinander über den Nachthimmel ziehen.</p>\n<p>Die schiere Zahl der Satelliten (und ihre jeweilige Position) kann man unter den SatFlare-Seiten für <a href=\"https://www.satflare.com/track.asp?q=StarLink3\" rel=\"nomention\">den Starlink3-Zug</a>, <a href=\"https://www.satflare.com/track.asp?q=StarLink4\" rel=\"nomention\">den Starlink4-Zug</a>, und <a href=\"https://www.satflare.com/track.asp?q=StarLink5\" rel=\"nomention\">den Starlink5-Zug</a> erst richtig begreifen.</p>\n<h2 id=\"wie-finde-ich-die-starlink-satelliten-am-nachthimmel\">Wie finde ich die Starlink-Satelliten am Nachthimmel?</h2>\n<p>Die wichtigsten Voraussetzungen, um die Startlink-Satelliten zu finden:</p>\n<ol>\n<li>Es muss hinreichend dunkel sein,</li>\n<li>die Satelliten müssen von der Sonne angestrahlt werden,</li>\n<li>es muss eine wolkenlose, klare und am Besten trockene Nacht sein.</li>\n<li>Und nicht zuletzt muss man wissen, in welcher Himmelsrichtung man suchen muss.</li>\n</ol>\n<p>Netterweise gibt es bei <a href=\"https://findstarlink.com/\" rel=\"nomention\">„Find Starlink“</a> eine Seite, die anhand der eigenen geografischen Positon auf der Erde errechnet, wann die obigen Voraussetzungen erfüllt sind – mit Ausnahme des Wetters. In Deutschland sind die Satelliten fast ausschließlich im Süden zu bewundern, und ziehen von Westen nach Osten (also genau andersherum als die Sonne wandert).</p>\n<p>Nicht jeder ist dabei so begeistert von diesem Schauspiel, wie unter anderem in dem <a href=\"https://de.wikipedia.org/wiki/Starlink\" rel=\"nomention\">Wikipedia-Eintrag zu Starlink</a> nachzuschlagen ist: So zeigen sich Astronomen genervt, wenn <a href=\"https://www.heise.de/newsticker/meldung/Satelliten-Internet-Starlink-Immer-mehr-Spuren-in-astronomischen-Aufnahmen-4597662.html\">durch ihre Himmelsbeobachtung diese Truppe von Satelliten rast</a> (im folgenden Video zu bewundern ab Minute 2:10) wie ein Güterzug durch eine Dichterlesung:</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=oHs7ljhQWPA&amp;t=130\" src=\"https://www.youtube-nocookie.com/embed/oHs7ljhQWPA?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/oHs7ljhQWPA?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/oHs7ljhQWPA/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/oHs7ljhQWPA/hqdefault.jpg\" --></div>\n<p>Und mancherorts führt die Sichtung der Satelliten auch zu <a href=\"https://www.heise.de/newsticker/meldung/Ufo-Meldestelle-Besorgte-Anrufe-wegen-Starlink-Satelliten-von-SpaceX-4609402.html\">Anrufen, ob nicht UFOs über der Erde kreisen</a>.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Starlink-Satelliten%20beobachten&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-04-22-starlink-satelliten-beobachten%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Aktuell sind mit dem bloßen Augen die Starlink-Satelliten von SpaceX gut zu sehen. Das Schauspiel sieht sehr beeindruckend aus:",
      "date_published": "2020-04-22T19:54:38+02:00",
      "date_modified": "2020-04-27T15:41:11+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/h-S67Y7gEeY/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/h-S67Y7gEeY/hqdefault.jpg",
      "tags": [
        "Raumfahrt",
        "Geografie",
        "The Cool"
      ],
      "_geo": {
        "about": "http://geojson.org/",
        "type": "Point",
        "coordinates": [
          10.39693,
          53.24877
        ]
      }
    },
    {
      "id": "user/posts/2020-04-05-svg-web-components/index.md",
      "url": "https://journal.3960.org/posts/2020-04-05-svg-web-components/",
      "title": "SVG und Web Components",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2020-04-05-svg-web-components/hsi-240x240.png\" class=\"quad\" width=\"240\" height=\"240\" style=\"--aspect-ratio: 1/1;\" alt=\"\" /> <a href=\"https://www.webcomponents.org/\" rel=\"nomention\">Web Components</a> erlauben in modernen Browsern, eigene Tags mit beliebig komplexen Verhalten zu definieren. Und wie der Name „Komponente“ schon nahelegt, kann man diese kleinen Bibliotheken beliebig oft weiterverwenden, sobald diese einmalig geladen wurden.</p>\n<p>Mit einigen kleinen Kniffen kann die Entwicklung solcher Komponenten noch schneller von der Hand gehen.</p>\n<!-- more -->\n<h2 id=\"more\">Wie starte ich mit Web Components?</h2>\n<p>Für den Einstieg in das Thema Web Components empfiehlt sich die Lektüre der ausgezeichneten <a href=\"https://developers.google.com/web/fundamentals/web-components\" rel=\"nomention\">Einführung von Google</a> und <a href=\"https://css-tricks.com/an-introduction-to-web-components/\">CSS-Tricks</a>. Andere Anleitungen basieren teilweise auf älteren Ideen, die getrost ignoriert werden können.</p>\n<p><strong>Update 2020–09</strong>: Die Vielzahl der Wege, wie man eine Web Component bauen kann, <a href=\"https://webcomponents.dev/blog/all-the-ways-to-make-a-web-component/\" rel=\"nomention\">hat webcomponents.dev veranlasst, eine Auflistung aller möglichen Wege zum Erstellen einer Web Component zusammenzustellen</a>.</p>\n<p>Außerdem lohnt es sich immer, moderne Beispiele anzuschauen. Ich für meinen Teil habe entsprechend versucht, einen <a href=\"https://en.wikipedia.org/wiki/Horizontal_situation_indicator\" rel=\"nomention\">Horizontal Situation Indicator</a> als Vanilla-JavaScript Web Component mustergültig zu bauen. Der daraus resultierende <a href=\"https://github.com/fboes/webcomponent-hsi\">Quellcode der „Horizontal Situation Indicator“ Web Component</a> wird im Rahmen dieses Artikels immer wieder als Beispiel herangezogen.</p>\n<div class=\"embed embed--codepen\"><iframe allowfullscreen=\"allowfullscreen\" title=\"Die montierte &quot;Horizontal Situation Indicator&quot; Web Component\" src=\"https://journal.3960.org//codepen.io/fboes/embed/dyoBvzP/?height=265&amp;theme-id=0&amp;default-tab=result&amp;embed-version=2\" height=\"265\"></iframe></div>\n<h2 id=\"wie-denkt-man-eine-web-component\">Wie <em>denkt</em> man eine Web Component?</h2>\n<p>Die größte Hürde für den angehenden Komponenten-Bauer ist das Verständnis, wie all die schönen Teile zusammenpassen.</p>\n<p>Da eine Web Compoment gekapselt ist, kann nur über eine vorher definierte Schnittstelle von außen Zugriff auf ihr Verhalten genommen werden. Es ist also sehr sinnig, die Konzeption und den Bau einer Web Component wie den Bau einer Schnittstelle bzw. eines Interfaces zu verstehen.</p>\n<p>Als Beispiel nehmen wir einfach die <a href=\"https://3960.org/webcomponent-hsi/\">fertige Implementation der HSI-Web-Component</a>:</p>\n<pre><code class=\"language-html\">&lt;<i>horizontal-situation-indicator</i> <var>id</var>=&quot;<kbd>hsi</kbd>&quot; <var>heading</var>=&quot;<kbd>45.0</kbd>&quot; <var>heading-select</var>=&quot;<kbd>0.0</kbd>&quot;&gt;&lt;/<i>horizontal-situation-indicator</i>&gt;\n</code></pre>\n<h3 id=\"attribute-bzw-properties\">Attribute bzw. Properties</h3>\n<p>Beim Bau einer Web Component müssen neben dem <strong>Namen der Web Component</strong> auch die <strong>Attribute der Web Component und ihre möglichen Werte</strong> definiert werden.</p>\n<p>Diese Attribute verwandeln sich innerhalb der JavaScript-Repräsentation der Web Component in <strong>Properties</strong>, die mit den Attributen synchronisiert sind:</p>\n<pre><code class=\"language-javascript\"><b>const</b> el = <b>document</b>.<b>getElementById</b>(<kbd>'hsi'</kbd>);\nel.<b>getAttribute</b>(<kbd>'heading'</kbd>); <u>// &quot;45.0&quot;</u>\nel.heading; <u>// &quot;45.0&quot;</u>\n\nel.<b>setAttribute</b>(<kbd>'heading'</kbd>, <kbd>'60.0'</kbd>);\nel.<b>getAttribute</b>(<kbd>'heading'</kbd>); <u>// &quot;60.0&quot;</u>\nel.heading; <u>// &quot;60.0&quot;</u>\n\nel.heading = <kbd>'135.0'</kbd>;\nel.<b>getAttribute</b>(<kbd>'heading'</kbd>); <u>// &quot;135.0&quot;</u>\nel.heading; <u>// &quot;135.0&quot;</u>\n</code></pre>\n<p>Bei dem Zugriff auf eine Property mit einem <code>-</code> im Namen funktioniert der Zugriff leicht anders:</p>\n<pre><code class=\"language-javascript\">el.<b>getAttribute</b>(<kbd>'heading-select'</kbd>);\n<u>//el.heading-select existiert nicht</u>\nel[<kbd>'heading-select'</kbd>]; <u>// korrekte Schreibweise in `[]`</u>\n</code></pre>\n<p>Die Schreibweise mit <code>[]</code> erlaubt auch den dynamischen Zugriff auf Properties:</p>\n<pre><code class=\"language-javascript\"><b>let</b> attrName = <kbd>'heading-select'</kbd>;\n\nel.<b>getAttribute</b>(attrName);\nel[attrName];\n</code></pre>\n<h3 id=\"methoden\">Methoden</h3>\n<p>Darüber hinaus kann der Entwickler einer Web Component noch festlegen, dass die Komponente <strong>JavaScript-Methoden</strong> anbietet. Diese erlauben zum Beispiel von außen der Komponente zu befehlen, komplexe Prozesse innerhalb der Komponente zu erledigen.</p>\n<pre><code class=\"language-javascript\">el.synchronizeHeading();\n</code></pre>\n<p>Da JavaScript keine Sichtbarkeiten wie <code>public</code> und <code>private</code> für Methoden hat, hat sich als Konvention herausgebildet, private Methoden mit einem <code>_</code> zu beginnen.</p>\n<h3 id=\"events\">Events</h3>\n<p>Außerdem kann eine Web Component noch <strong>JavaScript-Events</strong> erzeugen, die außerhalb der Komponente registriert werden können. So emittiert z.B. das <code>&lt;video&gt;</code>-Tag Events, wenn ein Video beendet wurde, was ohne dieses Event außerhalb des Tags keiner wissen könnte.</p>\n<h2 id=\"was-kann-eine-web-component-alles-darstellen\">Was kann eine Web Component alles darstellen?</h2>\n<p>Web Components können fast alles darstellen, was auch regulär in einem Browser dargestellt werden kann. Besonderes Augenmerk muss aber darauf gelegt werden, dass alle benötigten Bestandteile in der einen JavaScript-Datei enthalten ist, die die Web Component definiert.</p>\n<p>Am Einfachsten einzubinden sind die folgenden Dinge:</p>\n<ul>\n<li>HTML</li>\n<li>CSS für die Web Component</li>\n<li>JavaScript-Interaktion für die Web Component</li>\n</ul>\n<p>Alle anderen Ressourcen (<strong>Bilder, Videos, Töne</strong>) können mit einem Trick eingeschmuggelt werden: Mittels <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\" rel=\"nomention\">Data URLs</a> können Binär-Dateien in Base64-Zeichenketten umgewandelt werden, die dann z.B. im <code>src</code>-Attribut eines <code>&lt;img&gt;</code> eingebunden werden können.</p>\n<p>Besonders spannend: <strong>SVG-Bilder</strong> sind nicht nur schön kompakt in Bezug auf ihren Speicherplatz, sondern <a href=\"https://css-tricks.com/using-svg/#article-header-id-5\" title=\"Inline SVG in HTML\">können auch direkt in das HTML</a> eingebunden werden – benötigen also den Base64-Trick nicht.</p>\n<h2 id=\"gibt-es-build-tools-für-web-components\">Gibt es Build Tools für Web Components?</h2>\n<p>In der Tat gibt es eine ganze Menge Tools, um das Zusammensetzen der einzelnen Teile einer Web Component zu unterstützen. In der Regel reicht aber <a href=\"https://github.com/fboes/webcomponent-hsi/blob/master/dev/build.js\">ein kleiner flotter Node.js-Mehrzeiler als Web Component Build Tool</a>, der aus einzelnen Dateien die eigentliche Web Component zusammensetzt. Die Kurzfassung:</p>\n<pre><code class=\"language-javascript\"><b>const</b> fs = <i>require</i>(<kbd>'fs'</kbd>);\n\n<b>let</b> source      = fs.readFileSync(<kbd>`horizontal-situation-indicator.js`</kbd>).toString();\n<b>let</b> templateCss = fs.readFileSync(<kbd>`src/horizontal-situation-indicator.css`</kbd>).toString();\n<b>let</b> templateSvg = fs.readFileSync(<kbd>`src/horizontal-situation-indicator.svg`</kbd>).toString();\n\nsource = source.<b>replace</b>(/(&lt;style&gt;).*(&lt;<samp>\\/</samp>style&gt;)/ms, templateCss);\nsource = source.<b>replace</b>(/(&lt;<samp>\\/</samp>style&gt;).*(<kbd>`)/ms, templateSvg);\nfs.writeFileSync(`</kbd>horizontal-situation-indicator.js`, source);\n</code></pre>\n<p>Das tatsächliche Skript ist zwar etwas komplexer, das Grundprinzip ist aber ein denkbar einfaches: Die Entwicklung von SVG und CSS (oder jedem anderen Dateitypen) findet in separaten Dateien statt, die mit dem obigen Skript einfach in das JavaScript der Web Component hineinkopiert werden. Unter anderem könnte hier auch die Konvertierung von Binär-Daten in ihre Base64-Entsprechung durchgeführt werden.</p>\n<h2 id=\"kann-man-das-erzeugen-von-get-und-set-für-jede-property-abkürzen\">Kann man das Erzeugen von <code>get</code> und <code>set</code> für jede Property abkürzen?</h2>\n<p>Da jeder Web Component eine Liste der zu synchronisierenden Attribute / Properties mit der Methode <code>observedAttributes</code> bekannt gemacht werden muss, kann genau diese Liste im <code>constructor</code> auch <a href=\"https://css-tricks.com/creating-a-custom-element-from-scratch/\">zum programmatischen Erzeugern von Gettern / Settern</a> verwendet werden.</p>\n<pre><code class=\"language-javascript\"><i>this</i>.constructor.observedAttributes.<i>forEach</i>((attrName) <samp>=&gt;</samp> {\n  Object.defineProperty(<i>this</i>, attrName, {\n    get() {\n      <i>return</i> <i>this</i>.<b>getAttribute</b>(attrName);\n    },\n    set(attrValue) {\n      <i>this</i>.<b>setAttribute</b>(attrName, attrValue);\n    }\n  });\n});\n</code></pre>\n<p>Diese Methode hat in einigen Web-Components-Frameworks möglicherweise Nachteile – für die Vanilla-Nutzung ist sie aber weitestgehend ungefährlich.</p>\n<h2 id=\"wie-löse-ich-styling-in-der-web-component\">Wie löse ich Styling <em>in</em> der Web Component?</h2>\n<p>Da Web Components sowieso nur in aktuellen Browsern zuverlässig funktionieren, kann man sich gleichzeitig auch auf fortgeschrittene CSS-Möglichkeiten verlassen. Um CSS innerhalb der Komponente von außen zu beeinflussen, verwende ich <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/--*\">CSS-Variablen bzw. CSS-Custom-Properties</a>. Innerhalb des CSS&#39; des Komponente definiere ich sie direkt an der DOM-Wurzel der Komponente:</p>\n<pre><code class=\"language-css\"><i>:host</i> {\n  <var>--background-color</var>: black;\n  <var>--foreground-color</var>: white;\n  <var>--heading-select-color</var>: cyan;\n  <var>--stroke-width</var>: 0.5;\n}\n<u>/*…und verwende diese CSS-Custom-Properties dann später in Variablen - bei mir z.B. als SVG-CSS-Eigenschaften:*/</u>\n\n<i>#background</i> {\n  <b>fill</b>: <b>var</b>(<var>--background-color</var>);\n}\n<i>*</i> {\n  <b>fill</b>: <b>var</b>(<var>--foreground-color</var>);\n}\n<i>*[stroke]</i> {\n  <b>stroke-width</b>: <b>var</b>(<var>--stroke-width</var>);\n}\n\n<i>#heading-select</i> {\n  <b>fill</b>: <b>var</b>(<var>--heading-select-color</var>);\n}\n</code></pre>\n<p>Wer nun auch immer diese Komponente verwendet, kann diese CSS-Custom-Properties von außen beeinflussen:</p>\n<pre><code class=\"language-css\"><i>horizontal-situation-indicator</i> {\n  <var>--heading-select-color</var>: red;\n  <var>--stroke-width</var>: 1;\n}\n</code></pre>\n<p>Bei der <a href=\"https://3960.org/webcomponent-hsi/\">Beispiel-Implementation von <code>&lt;horizontal-situation-indicator&gt;</code></a> kann auch bewundert werden, wie durch JavaScript diese CSS-Custom-Properties am lebenden Objekt verändert werden, und in der Komponente sich alles fröhlich verfärbt.</p>\n<p>Ganz nebenbei haben wir für die Komponente eine weitere Schnittstelle geschaffen – in diesem Fall eine Styling-Schnittstelle.</p>\n<p><strong>Update:</strong> Andererseits können aber auch einzelne DOM-Knoten ohne CSS-Properties zum expliziten Styling freigegeben werden. Eine <a href=\"https://css-tricks.com/styling-in-the-shadow-dom-with-css-shadow-parts/\">Anleitung zum Freigeben von DOM-Knoten aus dem Shadow-DOM zum CSS-Styling bei CSS-Tricks</a> zeigt die notwendigen Anpassungen im HTML:</p>\n<pre><code class=\"language-html\">&lt;<i>div</i> <var>part</var>=&quot;<kbd>style-me</kbd>&quot;&gt;…&lt;/<i>div</i>&gt;\n</code></pre>\n<p>…und dem CSS im Eltern-Dokument:</p>\n<pre><code class=\"language-css\"><i>horizontal-situation-indicator::part(style-me)</i> {\n  <b>font-weight</b>: bold;\n}\n</code></pre>\n<p>Auch hier hat wieder der Autor der Komponente die Herrschaft über die Elemente, die er nach außen freigibt – wie bei einer Schnittstelle.</p>\n<h2 id=\"wie-animiere-ich-svgs-in-web-components\">Wie animiere ich SVGs in Web Components?</h2>\n<p>Der eigentliche Clou der <a href=\"https://github.com/fboes/webcomponent-hsi\">HSI Web Component</a> ist die generelle Fähigkeit von JavaScript, DOM-Elemente und ihre Eigenschaften zu verändern. Dies können sowohl CSS-Eigenschaften als auch generelle Attribute von DOM-Elementen sein.</p>\n<p>Bei SVG bieten sich die folgenden Operationen an:</p>\n<ul>\n<li>Änderung von <code>stroke</code> und <code>stroke-width</code> zur Beeinflussung von Linien</li>\n<li>Änderung von <code>fill</code> zur Veränderung der Füllfarbe</li>\n<li>Änderung von <code>opacity</code> zur Veränderung der Durchsichtigkeit eines Elements</li>\n<li>Veränderung von Position, Größe und Rotation mittels <code>transform</code></li>\n<li>Austausch des Text-Inhalts von <code>&lt;text&gt;</code>-Knoten mittels <code>.textContent</code></li>\n</ul>\n<p>Bei SVG gibt es dabei die Möglichkeit, nicht nur via CSS diese Eigenschaften zu beeinflussen, sondern auch durch das Setzen von Attributen innerhalb des SVGs an einzelnen SVG-DOM-Knoten.</p>\n<p>Auch das ist in der <a href=\"https://3960.org/webcomponent-hsi/\">Beispiel-Implementation von <code>&lt;horizontal-situation-indicator&gt;</code></a> zu bestaunen – hier sind die Attribute der Komponente mit Animationsmethoden verknüpft, so dass Änderungen an den Attributen bzw. Properties der Web Component zeitgleich die Darstellung des eingeschlossenen SVGs ändert.</p>\n<h2 id=\"wie-sollte-eine-dokumentation-für-eine-web-compontent-aussehen\">Wie sollte eine Dokumentation für eine Web Compontent aussehen?</h2>\n<p>Da eine Web Component im Endeffekt eine Schnittstelle ist, muss es dazu eine <strong>Schnittstellen-Dokumentation</strong> geben. Ohne diese Dokumentation können andere Entwickler, die die Komponente verwenden möchten, nicht zuverlässig wissen, wie die Komponente zu bedienen ist.</p>\n<p>Als Minimum muss eine Dokumentation enthalten:</p>\n<pre><code class=\"language-markdown\"><em>## Properties</em>\n\n| Name           | Type    | Default | Description  |\n| -------------- | ------- | ------- | ------------ |\n| <samp>`heading`</samp>      | <samp>`float`</samp> | <samp>`null`</samp>  | Lorem ipsum… |\n\n<em>## Methods</em>\n\n| Name           | Parameters | Description         |\n| -------------- | ---------- | ------------------- |\n| <samp>`revHeading`</samp>   | none       | Lorem ipsum…        |\n\n<em>## Events</em>\n\n| Name           | Description                      |\n| -------------- | -------------------------------- |\n| <samp>`synchronized`</samp> | Lorem ipsum…                     |\n\n<em>## Styling</em>\n\n<samp>```css\ncomponent-name {\n  --background: color; /* Lorem ipsum… */\n}\n\ncomponent-name::part(part-name) {} /* Lorem ipsum… */\n```</samp>\n</code></pre>\n<h2 id=\"fazit\">Fazit</h2>\n<p>Der fertige <a href=\"https://github.com/fboes/webcomponent-hsi\">Horizontal Situation Indicator als Web Component ist in einem GitHub-Repository</a> gelandet, und einen Blick auf die <a href=\"https://3960.org/webcomponent-hsi/\">fertige Implementation der HSI-Web-Component</a> erlaubt einen interaktiven Blick auf die Zusammenhänge in der Komponente.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=SVG%20und%20Web%20Components&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-04-05-svg-web-components%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Web Components erlauben in modernen Browsern, eigene Tags mit beliebig komplexen Verhalten zu definieren. Und wie der Name „Komponente“ schon nahelegt, kann…",
      "date_published": "2020-04-05T18:41:26+02:00",
      "date_modified": "2023-03-05T10:14:07+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2020-04-05-svg-web-components/hsi.png",
      "language": "de-DE",
      "image": "https://journal.3960.org/posts/2020-04-05-svg-web-components/hsi.png",
      "tags": [
        "Webdevelop",
        "Web-Components",
        "SVG",
        "Javascript",
        "CSS",
        "Programmierung",
        "Technologie",
        "The Cool",
        "Fliegerei"
      ]
    },
    {
      "id": "user/posts/2020-03-11-tales-from-loop-kommt-als-fernsehserie/index.md",
      "url": "https://journal.3960.org/posts/2020-03-11-tales-from-loop-kommt-als-fernsehserie/",
      "title": "„Tales from the Loop“ kommt als Fernsehserie",
      "content_html": "<p>Der von mir hoch verehrte Künstler <a href=\"https://simonstalenhag.se/\">Simon Stålenhag</a> hat es endlich geschafft: Nachdem sein wunderbarer erster Kunstband „Tales from the Loop“ bereits als <a href=\"https://journal.3960.org/posts/simon-staelenhags-gruselige-welt/\">Pen-&amp;-Paper-Rollenspiel „Tales from the Loop“</a> umgesetzt wurde, folgt nun auf <i>Amazon Prime</i> die Fernsehserie „Tales from the Loop“:</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"Trailer für &quot;Tales from the Loop&quot;\" src=\"https://www.youtube-nocookie.com/embed/1htuNZp82Ck?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/1htuNZp82Ck?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/1htuNZp82Ck/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/1htuNZp82Ck/hqdefault.jpg\" --></div>\n<!-- more -->\n<p id=\"more\">Seine mystischen Welten, sind wunderschöne Orte, die voller Abenteuer stecken. Stålenhag erzählt in seinen ersten beiden Bildbänden „Tales from the Loop“ und „Things from the Flood“ von seiner Jugend im schwedischen Hinterland, die augenscheinlich von Teilchenbeschleunigern, schwebenden Schiffen, Mechs und Dinosauriern nur so gewimmelt hat – verbunden mit dem Schweden der 80er-Jahre.</p>\n<p>Nachdem das Computerspiel „<a href=\"https://generationzero.com/de/\" rel=\"nomention\">Generation Zero</a>“ nur Teile seiner Ideen <a href=\"https://kotaku.com/new-swedish-robot-game-sure-looks-like-simon-stalenhags-1826652612\">und auch nicht vollkommen überzeugend</a> umgesetzt hatte, steigt hoffentlich jetzt auch der Wille, mal ein schönes Adventure-Game für PC und/oder Konsole im Universum von „Tales from the Loop“ umzusetzen (zum Beispiel im Stil von „<a href=\"https://journal.3960.org/tagged/the-long-dark/\">The Long Dark</a>“).</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=%E2%80%9ETales%20from%20the%20Loop%E2%80%9C%20kommt%20als%20Fernsehserie&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-03-11-tales-from-loop-kommt-als-fernsehserie%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Der von mir hoch verehrte Künstler Simon Stålenhag hat es endlich geschafft: Nachdem sein wunderbarer erster Kunstband „Tales from the Loop“ bereits als Pen-&…",
      "date_published": "2020-03-11T18:21:59+01:00",
      "date_modified": "2020-04-29T14:33:49+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/1htuNZp82Ck/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/1htuNZp82Ck/hqdefault.jpg",
      "tags": [
        "Fernsehserie",
        "Outdoor",
        "The Cool"
      ],
      "_geo": {
        "about": "http://geojson.org/",
        "type": "Point",
        "coordinates": [
          17.522163,
          59.342031
        ]
      }
    },
    {
      "id": "user/posts/2020-01-19-migrants/index.md",
      "url": "https://journal.3960.org/posts/2020-01-19-migrants/",
      "title": "Migrants",
      "content_html": "<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"https://www.youtube.com/watch?v=G2dGWH90aew\" src=\"https://www.youtube-nocookie.com/embed/G2dGWH90aew?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/G2dGWH90aew?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/G2dGWH90aew/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/G2dGWH90aew/hqdefault.jpg\" --></div><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Migrants&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2020-01-19-migrants%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "",
      "date_published": "2020-01-19T18:09:37+01:00",
      "date_modified": "2020-01-19T18:09:37+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/G2dGWH90aew/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/G2dGWH90aew/hqdefault.jpg",
      "tags": [
        "Geckobar",
        "Raumfahrt",
        "The Cool"
      ]
    },
    {
      "id": "user/posts/2019-10-12-microsoft-flight-simulator-2020-was-er-bewirken-wird/index.md",
      "url": "https://journal.3960.org/posts/2019-10-12-microsoft-flight-simulator-2020-was-er-bewirken-wird/",
      "title": "Der Microsoft Flight Simulator 2020 – und was er bewirken wird",
      "content_html": "<p>Microsoft hat vor Kurzem den neuesten Teil ihrer weltberühmten <i>Flight Simulator</i>-Serie angekündigt. Innerhalb kürzester Zeit war der <i><a href=\"https://www.flightsimulator.com/\">Microsoft Flight Simulator 2020</a></i> in aller Munde – nicht zuletzt wegen seines spektakulären Trailers:</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"Der Trailer zu MSFS2020 ist atemberaubend.\" src=\"https://www.youtube-nocookie.com/embed/ReDDgFfWlS4?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/ReDDgFfWlS4?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/ReDDgFfWlS4/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/ReDDgFfWlS4/hqdefault.jpg\" --></div>\n<p>Nachdem sich der Staub etwas gelegt hat und immer mehr Informationen über dieses (augenscheinlich seit fünf Jahren im Geheimen produzierte) Projekt an die Öffentlichkeit dringen, gibt es eine erste Ahnung, was <abbr title=\"Microsoft Flight Simulator 2020\">MSFS2020</abbr> für das Hobby der Flug-Simulation bedeuten kann.</p>\n<!-- more -->\n<h2 id=\"more\">Was bisher geschah</h2>\n<p>Der aus dem Jahre 2006 stammende letzte Simulator aus dem Hause Microsoft war der <i><a href=\"https://de.wikipedia.org/wiki/Microsoft_Flight_Simulator#Flight_Simulator_X\">Microsoft Flight Simulator X</a></i> – ein in seiner Zeit bahnbrechendes Stück Software, dass für lange Zeit den Maßstab für private Flug-Simulation gesetzt hatte.</p>\n<p>Die Jahre gingen ins Land, und der <abbr title=\"Flight Simulator X\">FSX</abbr> verstaubte mehr und mehr: Die Grafik, das Flugmodell, alleine der Nachschub an Patches – all dies machte FSX trotz einer treuen Fangemeinde langsam überholt. Alle warteten auf einen Nachfolger.</p>\n<p>2012 erschien das Flugspiel <i>Microsoft Flight</i>. Die Annahme, dass es eine Fortsetzung des FSX sein würde, wurden enttäuscht. Stattdessen handelte es sich um ein vereinfachtes <em>Spiel</em>, dass Simulationsfreunde nicht zufrieden stellen konnte.</p>\n<p>Als weitere Signale schloss Microsoft 2009 das für den FSX verantwortliche Studio, und lizensierte die Engine an andere Unternehmen, die <a href=\"https://de.wikipedia.org/wiki/Microsoft_Flight_Simulator#Nachfolgeprodukte\">mehr oder weniger würdige Nachfolger für den Flight Simulator</a> produzierten. Keines dieser Produkte konnte aber bahnbrechende Erfolge feiern. </p>\n<p>Simulationsfreunden wurde klar, dass von Microsoft nichts mehr zu erwarten sein würde. So zog die Herde weiter, unter anderem zu <a href=\"https://www.x-plane.com/\">X-Plane 11</a>, oder schwelgte mit <a href=\"https://www.prepar3d.com/\">Prepar3d</a> in Nostalgie.</p>\n<h2 id=\"götterdämmerung\">Götterdämmerung</h2>\n<p>Das alles änderte sich schlagartig mit den ersten Trailern für den <i>Microsoft Flight Simulator 2020</i>, die für alle überraschend nicht nur einen bereits sehr fertig wirkenden Simulator zeigte.</p>\n<p>Die Trailer zeigten ein Flugerlebnis, das vor allen Dingen <a href=\"https://www.thedrive.com/the-war-zone/29848/this-spin-recovery-clip-from-microsofts-upcoming-flight-sim-is-absolutely-insane\"><em>außerhalb</em> der Simulations-Gemeinde Interesse an MSFS2020 weckte</a>. In persönlichen Gesprächen mit <em>Gamern</em> zeigte sich, dass Microsoft einen Nerv getroffen hatte: Auch Spieler ohne Vorerfahrung mit Flugsimulatoren interessierten sich auf einmal <em>brennend</em> für den MSFS2020. Die ansprechende Grafik und die  einsteigerfreundliche Präsentation machten Lust auf mehr.</p>\n<p>Und die alten Simulationshasen? Immer, wenn der Hype-Train durch den Ort brauste, saßen sie erstmal gemütlich auf der Veranda und beobachteten das Spektakel skeptisch vom Rand aus. So auch diesmal: Viele hatten Microsoft ihre vorherigen Fehler in Bezug auf Flugsimulatoren nie verziehen.</p>\n<h2 id=\"direkt-auf-die-überholspur\">Direkt auf die Überholspur</h2>\n<p>Microsoft war von vorne herein bewusst, dass ihr Verhalten der Vergangenheit viel Porzellan zerschlagen und bei Simulations-Enthusiasten Skepsis und Misstrauen hinterlassen hatte. Schon früh hatte Microsoft deswegen den <a href=\"https://www.avsim.com/forums/forum/863-microsoft-flight-simulator/\">Austausch mit der Community</a> gestartet, und ein offenes Ohr für Ideen und Wünsche gezeigt. Doch alleine damit ließen sich nicht alle Zweifel zerstreuen – Fakten mussten her.</p>\n<p>In einem PR-Meisterstreich lud Microsoft darauf hin ausgesuchte Simfluencer, Flug-Blogger sowie Fachpresse zu einem Event ein, bei der sie nicht nur das frühe Produkt selber ausprobieren konnten, sondern auch mit den Entwicklern des <i>Microsoft Flight Simulator 2020</i> direkt ins Gespräch kommen konnten.</p>\n<div class=\"video-player video-player--youtube\"><iframe allowfullscreen=\"allowfullscreen\" title=\"Kurz und knackig sagt es flightdeck2sim\" src=\"https://www.youtube-nocookie.com/embed/RciDscnzJb8?enablejsapi=1\" srcdoc=\"&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=&quot;https://www.youtube.com/embed/RciDscnzJb8?autoplay=1&quot;&gt;&lt;img src=&quot;https://img.youtube.com/vi/RciDscnzJb8/hqdefault.jpg&quot; alt=&quot;&quot;&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;\"></iframe><!-- img src=\"https://img.youtube.com/vi/RciDscnzJb8/hqdefault.jpg\" --></div>\n<p>Ob es in dem <a href=\"https://www.youtube.com/watch?v=HrJs0jK4a1g\">Youtube-Video von FlightChops</a>, <a href=\"https://www.youtube.com/watch?v=Fj8h6yibHHc\">dem Youtube-Video von Frooglesim</a> oder dem Artikel auf <a href=\"https://www.helisimmer.com/articles/hands-on-microsoft-flight-simulator-2020\">Helisimmer.com</a> ist: Alle Simfluencer konnten nicht verbergen, dass Microsoft ihre Skepsis in Begeisterung und Vorfreude verwandelt hatte.</p>\n<h2 id=\"die-situation-heute\">Die Situation heute</h2>\n<p>Da die ersten Erfahrungen mit dem MSFS2020 vorliegen, verdichtet sich ein Bild.</p>\n<ul>\n<li>Der <i>Microsoft Flight Simulator 2020</i> hat sowohl Neueinsteiger als auch Veteranen als Zielgruppe.</li>\n<li>Grafisch wird der Simulator alles bisher dagewesene in den Schatten stellen – zumal der Simulator für die <em>gesamte</em> Welt hochauflösendes Material mit Vegetation und Bebauung anbieten wird.</li>\n<li>Das Flugmodell wird ebenfalls seinesgleichen suchen. Sowohl in Berichten als auch in Videos ist zu sehen, wie diffizil Fluggeräte reagieren.</li>\n<li>Auch beim Wettermodell ist eine Detailtiefe zu sehen, die bisherige Simulatoren alt aussehen lässt.</li>\n<li>Inwiefern Online-Spiel, Air Traffic Control und andere Prozeduren von vorne herein integriert sind, ist offen. Es ist aber erkennbar, dass auch hier der MSFS2020 nicht kleckern, sondern klotzen wird.</li>\n<li>Über den Bereich Performance (gerade für Virtual Reality) ist noch nicht viel bekannt – hier besteht schon der Verdacht, dass für bahnbrechende Bilder bahnbrechende Hardware benötigt wird. Für Simulationsfreunde ist aber die Verwendung von High-End-Hardware kein Novum.</li>\n<li>Es steht zu erwarten, dass die Palette an Fluggeräten schon nach kurzer Zeit sich rapide füllen wird, da etliche Drittanbieter bereits mit der Produktion neuer Fluggeräte für den MSFS2020 begonnen haben.</li>\n<li>Nicht zuletzt wird aufgrund der anvisierten Zielgruppe wahrscheinlich das bisher im Simulatorgewerbe übliche Zusammenbasteln des Simulators ein Ende haben. Während heutige Simulatoren aus einzelnen Softwarekomponenten zusammengesetzt werden müssen, die auf unterschiedlichen Bezugswegen und mit beliebig komplexen Installationsmechanismen daher kommen, wird Microsoft wahrscheinlich bei Erwerb wie Installation einen integrierten Katalog anbieten, ähnlich wie Steam oder Origin.</li>\n</ul>\n<p>Alles in allem scheint der <i>Microsoft Flight Simulator 2020</i> aller Voraussicht nach einen neuen Standard für den Bereich der Heim-Flugsimulatoren setzen zu können.</p>\n<h2 id=\"wie-gehts-weiter-mit-den-anderen-flugsimulatoren\">Wie geht&#39;s weiter mit den <em>anderen</em> Flugsimulatoren?</h2>\n<p>Der MSFS2020 bedeutet für etablierten Flugsimulatoren eine ernsthafte Konkurrenz. Gerade die Simulatoren, die ebenfalls die hochgradig realistische Zivil-Fliegerei abbilden, müssen sich sehr warm anziehen:</p>\n<ul>\n<li>Für <strong>X-Plane 11</strong> wird in den ersten Jahren das große Angebot von Fluggeräten gegenüber MSFS2020 noch einen Vorteil darstellen. Aber sowohl in der Darstellung der Szenerie als auch beim Wettermodell scheint der Neuankömmling dem guten alten X-Plane 11 überlegen zu sein. In Sachen Performance scheinen beide Simulatoren gleich hungrig zu sein – der MSFS2020 scheint aber mit der Hardware ein deutlich beeindruckenderes Erlebnis zu zaubern.</li>\n<li>Noch schlimmer sieht es für <strong>Prepar3d</strong> aus: Die angestaubte Engine wird augenscheinlich gegen den MSFS2020 keine Chance haben. Einzig die breite Palette an Fluggeräten kann anfangs noch helfen – aber alleine bei dem Angebot an Szenerien wie auch bei dem Flugmodell wird die Luft sehr schnell sehr dünn.</li>\n</ul>\n<p>Eine Chance haben dagegen Simulations-Projekte, die leicht außerhalb des Fokus liegen – wenn sie ihre Karten gut spielen:</p>\n<ul>\n<li>Der <strong>Digital Combat Simulator</strong> muss sich keine Sorgen machen: Obwohl sein Angebot an Szenerien geradezu winzig ist, ist die Konzentration auf kontemporäre Kampfflugzeuge bzw. -hubschrauber ein Feld, dass augenscheinlich nicht von MSFS2020 besetzt werden wird.</li>\n<li>Auch die Serie <strong>Il-2 Sturmovik: Great Battles</strong> ist mit seiner Auswahl an Kampfflugzeugen des Ersten und Zweiten Weltkriegs und der Konzentration auf die historische Fliegerei dieser Epoche von MSFS2020 nicht bedroht.</li>\n<li>Der <strong><a href=\"https://www.aerofly.com/de/\">Aerofly FS2</a></strong> ist im VR-Bereich bzw. auf kleiner Hardware grafisch ungeschlagen. Zwar verfügt der Simulator bis heute über kein realistisches Wetter, globale Szenerie-Abdeckung, Air Traffic Control, eine lebende Umwelt oder Online-Modus. Aber durch die Konzentration auf das Flugmodell, Performance und Einsteigerfreundlichkeit könnte Aerofly FS2 auch mittelfristig seine Bedeutung im Heim-Simulations-Markt behalten.</li>\n<li>Das bis heute nicht veröffentlichte <strong><a href=\"https://store.steampowered.com/app/771800/Deadstick__Bush_Flight_Simulator/\">Deadstick</a></strong> von REMEX Software dagegen könnte die Konzentration auf eine lebende Umwelt und ein Meta-Spiel die Zukunft sichern. Gerade dass <a href=\"https://journal.3960.org/posts/2017-11-24-flugsimulationen-besser-machen/\">Meta-Spiel, das der Fliegerei einen <em>Sinn</em> gibt</a>, und das kleine, heimatgefühlinduzierende Fluggebiet könnte eine langfristige Fan-Gemeinde aufbauen. Wenn <i>Deadstick</i> denn jemals erscheinen sollte.</li>\n</ul>\n<p>Für alle Simulatoren kann ein Weg sein, die Power des Internets zu nutzen:</p>\n<ul>\n<li>Die Kooperation mit einem Flug-/Satelliten-Bild-Anbieter, zusammen mit der Verwendung von Open Street Maps und einer Technologie zur Erzeugung von dreidimensionaler Vegetation und Bebauung, kann global die Abdeckung wie auch die Präsentation stark verbessern.</li>\n<li>Scheinbar unbelebte Umwelt können über Schnittstellen mit <a href=\"https://avwx.rest/\">echten Wetterdaten</a>, <a href=\"https://opensky-network.org/\">echten Flugverkehrsdaten</a> und z.B. auch <a href=\"https://www.aishub.net/\">echten Schiffsbewegungen</a> dynamischer erscheinen. Fahrzeuge dagegen können auf den durch Open Street Maps bekannten Straßen animiert werden.</li>\n<li>Simulatoren müssen selber offene, gut dokumentierte, stabile Schnittstellen anbieten, die dritten Parteien (z.B. auch Community-Entwicklern) die Erweiterung des Simulators erlauben.</li>\n<li>Darüber hinaus muss Nutzerfreundlichkeit mehr in den Fokus rücken; nicht nur innerhalb des eigentlichen Simulators, sondern auch bei der Installation und Aktualisierung von zusätzlichen Add-Ons und Plugins.</li>\n</ul>\n<p>Wie die einzelnen Simulatoren sich entwickeln hängt aber neben dem Produkt und dem Verhalten des Herstellers nicht zuletzt von der jeweiligen Community ab – ein schwer einzuschätzender Faktor. Schon bei FSX konnte man beobachten, dass ein technisch und funktional schon lange abgehängtes Produkt immer noch erfolgreich sein kann.</p>\n<h2 id=\"fazit\">Fazit</h2>\n<p>Alles in allem wird 2020 ein spannendes Jahr für die Flugsimulationsgemeinde – sei es für die Hersteller, sei es für die Schreibtisch-Flieger. Auf jeden Fall wird der MSFS2020 neue Impulse setzen, und das Hobby der virtuellen Fliegerei schlagartig einem vollkommen neuen Kreis von Nutzern eröffnen.</p>\n<p>Auch Simulationsfreunde, die nicht auf MSFS2020 setzen werden, werden seine Auswirkungen früher oder später auch in ihrem Lieblings-Simulator erleben.</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Der%20Microsoft%20Flight%20Simulator%202020%20%E2%80%93%20und%20was%20er%20bewirken%20wird&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2019-10-12-microsoft-flight-simulator-2020-was-er-bewirken-wird%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Microsoft hat vor Kurzem den neuesten Teil ihrer weltberühmten Flight Simulator-Serie angekündigt. Innerhalb kürzester Zeit war der Microsoft Flight Simulator…",
      "date_published": "2019-10-12T18:20:22+02:00",
      "date_modified": "2021-01-01T10:28:40+01:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://img.youtube.com/vi/ReDDgFfWlS4/hqdefault.jpg",
      "language": "de-DE",
      "image": "https://img.youtube.com/vi/ReDDgFfWlS4/hqdefault.jpg",
      "tags": [
        "MSFS2020",
        "Fliegerei",
        "Für Tumblr",
        "Meinung",
        "Simulation",
        "Spiel",
        "The Cool",
        "Aerofly FS2",
        "X-Plane",
        "DCS"
      ]
    },
    {
      "id": "user/posts/2018-08-22-network-communication-exapunks/index.md",
      "url": "https://journal.3960.org/posts/2018-08-22-network-communication-exapunks/",
      "title": "Network communication in Exapunks",
      "content_html": "<p><img src=\"https://journal.3960.org/posts/2018-08-22-network-communication-exapunks/exapunks-400x225.png\" class=\"default\" width=\"400\" height=\"225\" style=\"--aspect-ratio: 16/9;\" alt=\"\" /></p>\n<p>Sending and receiving messages in <a href=\"https://journal.3960.org/posts/2018-08-17-exapunks-spielen-programmieren/\">Exapunks</a> is a tricky business. Timing problems can ruin the proper execution of your <a href=\"https://steamcommunity.com/sharedfiles/filedetails/?id=1480557969\" rel=\"nomention\">Axiom</a> code.</p>\n<!-- more -->\n<p id=\"more\">Consider these two Exas trading messages via the <code>M</code> register. Exa <code>XA</code> reads from a file and sends them to the network register <code>M</code>…</p>\n<pre><code class=\"language-axiom\"><u>NOTE XA - SENDER</u>\n<i>GRAB</i> <em>199</em>\n<i>MARK</i> <b>READING</b>\n  <i>COPY</i> <kbd>F</kbd> <kbd>M</kbd>\n  <i>TEST</i> <i>EOF</i>\n  <i>FJMP</i> <b>READING</b>\n</code></pre>\n<p>…where <code>XB</code> reads from <code>M</code> and writes these messages to another file:</p>\n<pre><code class=\"language-axiom\"><u>NOTE XB - RECEIVER</u>\n<i>MAKE</i> \n<i>MARK</i> <b>WRITING</b>\n  <i>COPY</i> <kbd>M</kbd> <kbd>F</kbd>\n  <i>TEST</i> <i>MRD</i>\n  <i>TJMP</i> <b>WRITING</b>\n</code></pre>\n<p>As you can see, <code>XA</code> tests for the end of file (<code>EOF</code>), while <code>XB</code> tests for receivable messages (<code>MRD</code>). This seems to be rather well designed, but most often ends up in <code>XB</code> never finishing its job because there is nothing waiting in <code>M</code> when <code>TEST MRD</code> is executed. Why is that?</p>\n<p>Transfers via the <code>M</code> register are not instantaneous. Before writing to <code>M</code> it needs to be empty, before reading from <code>M</code> the corresponding write operation has to be finished.</p>\n<h2 id=\"noop-for-timing\"><code>NOOP</code> for timing</h2>\n<p>One solution for timing issues is to add additional <code>NOOP</code> commands in your writing loop, telling your receiver to wait until the sender is back online.</p>\n<pre><code class=\"language-axiom\"><u>NOTE XB - RECEIVER</u>\n<i>MAKE</i> \n<i>MARK</i> <b>WRITING</b>\n  <i>COPY</i> <kbd>M</kbd> <kbd>F</kbd>\n  <i>NOOP</i> \n  <i>NOOP</i> \n  <i>TEST</i> <i>MRD</i>\n  <i>TJMP</i> <b>WRITING</b>\n</code></pre>\n<p>If the job of <code>XA</code> is to just read its file and die afterwards, your programme could be written even more compact:</p>\n<pre><code class=\"language-axiom\"><u>NOTE XA - SENDER</u>\n<i>GRAB</i> <em>199</em>\n<i>MARK</i> <b>READING</b>\n  <i>COPY</i> <kbd>F</kbd> <kbd>M</kbd>\n  <i>JUMP</i> <b>READING</b>\n<u>NOTE CRASH AND BURN AT END OF FILE</u>\n</code></pre>\n<p>…with <code>XB</code> having to wait one operation less than before:</p>\n<pre><code class=\"language-axiom\"><u>NOTE XB - RECEIVER</u>\n<i>MAKE</i> \n<i>MARK</i> <b>WRITING</b>\n  <i>COPY</i> <kbd>M</kbd> <kbd>F</kbd>\n  <i>NOOP</i> \n  <i>TEST</i> <i>MRD</i>\n  <i>TJMP</i> <b>WRITING</b>\n</code></pre>\n<p>By a rule of thumb the number of instructions in your receiver loop after your last read from <code>M</code> and before doing <code>TEST MRD</code> has to be as many instructions as it takes the sender to reach its next write to <code>M</code> after its last write to <code>M</code>.</p>\n<h2 id=\"sending-end-of-message\">Sending „End Of Message“</h2>\n<p>If you do not want to think about timing, the receiving <code>XB</code> can test for a marker which tells it that the end of the message has been reached.</p>\n<p>This <em>only</em> works if you know for sure that the file you are reading from never contains the symbol <code>0</code>, as <code>XA</code> will use this as its „End Of Message“ message (<code>EOM</code>):</p>\n<pre><code class=\"language-axiom\"><u>NOTE XA - SENDER</u>\n<i>GRAB</i> <em>199</em>\n<i>MARK</i> <b>READING</b>\n  <i>COPY</i> <kbd>F</kbd> <kbd>M</kbd>\n  <i>TEST</i> <i>EOF</i>\n  <i>FJMP</i> <b>READING</b>\n<u>NOTE EOF, SEND EOM</u>\n<i>COPY</i> <em>0</em> <kbd>M</kbd>\n</code></pre>\n<p>The receiver <code>XB</code> now copies the message to <code>T</code>, from where it is written into the file and is also executable from <code>TJMP</code> or <code>FJMP</code>. Remember: If <code>T</code> is <code>0</code>, it is evaluated to <code>false</code> – <em>all</em> other values will evaluate to <code>true</code>.</p>\n<pre><code class=\"language-axiom\"><u>NOTE XB - RECEIVER</u>\n<i>MAKE</i> \n<i>MARK</i> <b>WRITING</b>\n  <i>COPY</i> <kbd>M</kbd> <kbd>T</kbd>\n  <i>COPY</i> <kbd>T</kbd> <kbd>F</kbd>\n  <u>NOTE TEST EOM FROM `T`</u>\n  <i>TJMP</i> <b>WRITING</b>\n<u>NOTE DELETE EOM FROM FILE</u>\n<i>SEEK</i> <em>-1</em>\n<i>VOID</i> <kbd>F</kbd>\n</code></pre>\n<h2 id=\"sending-packet-size\">Sending „Packet Size“</h2>\n<p>If <code>XA</code> knows the file size it is reading to the network in advance, it is a very clever trick to send the file size to the receiver <code>XB</code> as well. This way the <code>XB</code> does not have to test for the message to end, but will know when all message chunks have been delivered.</p>\n<p><code>XA</code> will send the message size to <code>XB</code> and use it for its own loop:</p>\n<pre><code class=\"language-axiom\"><u>NOTE XA - SENDER</u>\n<i>GRAB</i> <em>199</em>\n<u>NOTE `T` CONTAINS THE NUMBER OF CHUNKS TO READ</u>\n<i>COPY</i> <kbd>T</kbd> <kbd>M</kbd>\n<i>MARK</i> <b>READING</b>\n  <i>COPY</i> <kbd>F</kbd> <kbd>M</kbd>\n  <u>NOTE COUNT DOWN REMAINING CHUNKS</u>\n  <i>SUBI</i> <kbd>T</kbd> <em>1</em> <kbd>T</kbd>\n  <i>TJMP</i> <b>READING</b>\n</code></pre>\n<p><code>XA</code> and <code>XB</code> will have the same loop conditions:</p>\n<pre><code class=\"language-axiom\"><u>NOTE XB - RECEIVER</u>\n<i>MAKE</i> \n<u>NOTE NOW `T` CONTAINS THE MESSAGE SIZE</u>\n<i>COPY</i> <kbd>M</kbd> <kbd>T</kbd>\n<i>MARK</i> <b>WRITING</b>\n  <i>COPY</i> <kbd>M</kbd> <kbd>F</kbd>\n  <u>NOTE COUNT DOWN REMAINING CHUNKS</u>\n  <i>SUBI</i> <kbd>T</kbd> <em>1</em> <kbd>T</kbd>\n  <i>TJMP</i> <b>WRITING</b>\n</code></pre>\n<h2 id=\"sending-keep-alive-messages\">Sending „Keep Alive Messages“</h2>\n<p>For bullet-proof communication your best choice is to have <code>XA</code> send a „keep alive message“…</p>\n<pre><code class=\"language-axiom\"><u>NOTE XA - SENDER</u>\n<i>GRAB</i> <em>199</em>\n<i>MARK</i> <b>READING</b>\n  <i>COPY</i> <kbd>F</kbd> <kbd>M</kbd>\n  <i>TEST</i> <i>EOF</i>\n  <u>NOTE SEND RESULT OF TEST TO M...</u>\n  <i>COPY</i> <kbd>T</kbd> <kbd>M</kbd>\n  <u>NOTE ...AND USE RESULT FOR YOUR OWN LOOP</u>\n  <i>FJMP</i> <b>READING</b>\n</code></pre>\n<p>…to <code>XB</code>:</p>\n<pre><code class=\"language-axiom\"><u>NOTE XB - RECEIVER</u>\n<i>MAKE</i> \n<i>MARK</i> <b>WRITING</b>\n  <i>COPY</i> <kbd>M</kbd> <kbd>F</kbd>\n  <u>NOTE USE TEST RESULT TO TEST FOR YOURSELF</u>\n  <i>TEST</i> <kbd>M</kbd> = <em>1</em>\n  <i>FJMP</i> <b>WRITING</b>\n</code></pre>\n<p>Every reading cycle <code>XB</code> reads two messages from <code>M</code>, where the second message contains <code>0</code> if <code>XA</code> reached the end of its file. In this manner <code>XB</code> continues to wait for messages as long as <code>XA</code> explicitly tells it to by sending <code>1</code> in the second message. </p>\n<p>This lets you skip all timing issues on the expends of more writes to the <code>M</code> register. It adds just one extra line of Axiom code (but one less than having to <code>NOOP</code>), but may end up producing more cycles.</p>\n<h2 id=\"the-terminator\">The Terminator</h2>\n<p>If you are facing a multi-sender communication, things may get hairy. In this scenario, multiple senders transmit data to one receiver, which has to combine these messages into a single on.</p>\n<p>Above solutions may apply, but if you are forced to deal with different message lengths which need to be combined, if may become very tricky to shut down the other sender as well, so your receiver stops its receiving cycle.</p>\n<p>Imagine a scenario where first sender <code>XA</code> knows when to quit, but second sender <code>XB</code> does not; in this case, receiver <code>XC</code> may go on receiving messages from <code>XB</code> <i>ad infinitum</i>.</p>\n<p>To solve this problem, <code>XA</code> could literally use the <code>KILL</code> command to shut down <code>XB</code>. You may even opt to kill the receiver <code>XC</code> as well with this method.</p>\n<hr />\n<p><strong>Update 2018–09–06</strong>: Added section for „End Of Message“ &amp; „Packet Size“.</p>\n<p><strong>Update 2018–09–16</strong>: Added section for „Terminator“</p><img src=\"https://stats.3960.org/p.php?idsite=2amp;action_name=Network%20communication%20in%20Exapunks&amp;url=https%3A%2F%2Fjournal.3960.org%2Fposts%2F2018-08-22-network-communication-exapunks%2F%3Futm_source%3Dnewsfeed_view\" style=\"border:0;\" alt=\"\" />",
      "summary": "Sending and receiving messages in Exapunks is a tricky business. Timing problems can ruin the proper execution of your Axiom code.",
      "date_published": "2018-08-22T19:16:07+02:00",
      "date_modified": "2022-06-17T12:12:47+02:00",
      "author": {
        "name": "Frank Boës",
        "url": "mailto:info@3960.org",
        "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
      },
      "authors": [
        {
          "name": "Frank Boës",
          "url": "mailto:info@3960.org",
          "avatar": "https://www.gravatar.com/avatar/71fcf51cf2ae9acdd54182d3e367ceca"
        }
      ],
      "banner_image": "https://journal.3960.org/posts/2018-08-22-network-communication-exapunks/exapunks.png",
      "language": "en-GB",
      "image": "https://journal.3960.org/posts/2018-08-22-network-communication-exapunks/exapunks.png",
      "tags": [
        "Exapunks",
        "Programmierung",
        "Spiel",
        "Anleitung",
        "The Cool"
      ]
    }
  ]
}