Outlook Default Browser

Seit längerem kann man in Windows einen Standardbrowser zum Öffnen von Links oder anderen Web-basierten Dingen auswählen der nicht Microsoft Edge heißt. Dieser Browser ist nach einer frischen Windows Installation natürlich per default Microsoft Edge, aber kann bei vorhergehender Installation per DropDown Menü in den Einstellungen auf Mozilla Firefox oder Google Chrome oder jeden beliebigen anderen Browser der Wahl geändert werden.

In der Regel halten sich auch die Applikationen daran und öffnen den in Windows eingestellten Standardbrowser, bis zuletzt auch Microsoft selbst. Jetzt hat Microsoft in Outlook einen zusätzlichen Schalter eingeführt der per default auf Edge als Standardbrowser gestellt ist und somit muss obige Übung zusätzlich durchgeführt werden.

Wenn man Microsoft Edge nicht als Standardbrowser in Outlook verwenden möchte kann dies im Outlook einfach über Datei -> Optionen -> Erweitert -> Datei und Browsereinstellungen -> Öffnen Sie Links von Outlook in: Standardbrowser umgestellt werden.

Cursor bewegen in iOS

Mit iOS 13 hat Apple das Feature zum Bewegen des Cursors in Eingabefeldern und Textboxen geändert. In älteren Versionen konnte man mit dem Finger über den Cursor fahren, drauf bleiben und anschließend hat sich eine Lupe über dem Finger geöffnet die einem die aktuelle Position des Cursors angezeigt hat.

Ab iOS 13 ist dieses Feature verschwunden (vermutlich durch die Force-Touch Funktion) und das hat der iOS Community einige Fragezeichen bescheert. Vor kurzem hab ich durch Zufall in einem Artikel entdeckt, dass man statt dieser Lupe ein anderes Feature hinzugefügt hat. Wenn man mit dem Finger auf der Leertaste bleibt dann verwandelt sich die iOS Tastatur in eine Art Mauspad und man kann mit diesem nun den Cursor frei in der Textzeile oder im Textfeld bewegen.

Achtung: Zuverlässig funktioniert das nur, wenn man dies auf der Leertaste macht, startet man dieses Feature auf einer der anderen Tasten darüber gerät man oft in den Swype Mode der Tastatur.

Covid 19 und so

Ich war lange genug leise und hab mir gedacht: „Das wird schon.“ In letzter Zeit merke ich aber, dass meine Geduld beim Diskutieren am Ende ist. Hier ein paar Gedanken:

Ich bin geimpft und nein, ich weiß nicht, was der Impfstoff genau beinhaltet (ich wüsste es gern, aber dazu fehlt mir das KnowHow). Ich weiß es weder von diesem Impfstoff noch von anderen, die ich als Kind bekam. Ich weiß aber auch nicht, was genau in einem Big Mac oder Hot Dog oder den leckeren Kiachln vom Christkindlmarkt exakt enthalten ist. Ich weiß auch nicht, was in Ibuprofen oder anderen Medikamenten enthalten ist, es hilft mir halt bei Schmerzen.
Ich kenne nicht jede Zutat in meiner Seife, meinem Shampoo oder meinem Parfum.

Ich kenne die Auswirkung moderner Technologien auf den Menschen nicht, weiß nicht, ob das Essen, das ich im Restaurant gegessen habe, von sauberen Händen zubereitet wurde oder ob meine Kleidung, Vorhänge, Sportgetränke, Sportbekleidung gefährliche Inhaltsstoffe oder Materialien hat.

Kurz gesagt…

Es gibt Vieles, was ich nicht weiß und auch nie wissen werde.

Aber eines weiß ich sehr wohl:
Das Leben ist kurz, und ich möchte trotzdem etwas anderes tun, als einfach in meinem Zuhause ′′eingesperrt′′ zu sein. Ich möchte immer noch Menschen ohne Angst umarmen, mit ihnen feiern, auf ein Konzert gehen oder mit ihnen Sport machen.

Als Kind und als Erwachsener bin ich gegen Kinderlähmung, Mumps/Masern (mit Impfpflicht), Poken (mit Impfpflicht) geimpft worden und gegen noch weitere, ganz viele andere Krankheiten; Meine Eltern (Danke dafür!) und ich haben der Wissenschaft vertraut und mussten zum Glück nie an einer der Krankheiten – gegen die ich geimpft wurde – leiden oder sie übertragen. Dass die Impfung verfügbar war und sie jeder bekommt zu einem Unkostenbeitrag der für jeden erschwinglich ist, dafür sorgt der Staat, die Gemeinschaft, ja, wir alle hier in Österreich für uns alle hier in Österreich!

Bei jeder Autobahnfahrt, U-Bahnbenützung, Liftfahrt uvm. vertraue ich mein Leben tausenden wildfremden Menschen und Ingenieuren an und hoffe, dass sie ihre Arbeit verantwortungsvoll getan haben, die Bauteile richtig berechnet haben oder beim Autofahren sich an die Regeln halten.

Das alles hat bis jetzt mein Leben lang geklappt! Ohne Vertrauen wird es schwierig auf dieser Welt, wir sind nunmal nicht allwissend und es wird immer Leute geben, die für einen die Verantwortung in gewissen Bereichen übernehmen und da werden wir wohl oder übel denen vertrauen müssen.

Ich bin geimpft, nicht um der Regierung zu gefallen, sondern um:

  • Nicht an Covid-19 zu sterben oder schwer zu erkranken.
  • Um es möglichst nicht zu verbreiten.
  • Ich teste mich dennoch, um es auch nicht zu übertragen.
  • Um meine Lieben zu umarmen.
  • Um die zu schützen, die es nicht können.
  • Um unser Gesundheitssystem nicht zu überlasten.
  • Um der Wirtschaft weniger zu schaden.

Man darf ja nicht vergessen, es gibt noch andere Erkankungen oder Unfälle, Infarkte, Krebsleiden usw.

Ich hab diesen Text, so ähnlich schon ein paar mal im Web gelesen. Bitte seid mir nicht böse, wenn der eine oder andere Satz so schon wo steht.

Reinigung einer Graef CM 800 Kaffeemühle

Eine sehr wichtige Komponente bei einem Home-Barista Setup ist die Kaffeemühle und dazu gehört auch deren Reinigung. Die (Achtung Amazon Affiliate Link, mehr dazu hier) Graef CM 800 ist eine Einsteigermühle im Preissegment unter 200€ und bietet sich für den Einstieg in diese Welt regelrecht an.

Sie hat allerdings durch den großen Totraum, also den Bereich wo Kaffee im Mahlwerk oder zwischen Mahlwerk und Auslass zurück bleibt, obwohl sie gerade nicht arbeitet, auch einen Nachteil.

Aus diesem Grund sollte man sie regelmäßig putzen und diese paar Schritte möchte ich euch zeigen.

ACHTUNG: Ich übernehme keine Verantwortung für irgendwelche Schäden die durch diese Reinigung bei euren Maschinen entstehen. Ebenso werden hier spannungsführende Teile offengelegt, also auf jeden Fall von Fachpersonal erledigen lassen und natürlich immer ohne Strom (also das Mahlwerk abgesteckt) durchführen.

Solltet ihr noch Kaffee im Behälter haben, dann schließt unten die Klappe damit die Bohnen nicht rausrieseln und trennt den Behälter vom Rest der Maschine mit einer einfachen Drehbewegung. Anschließend seht ihr das Mahlwerk mit der mechanischen Drehvorrichtung zum Einstellen des Mahlgrads. Das Mahlwerk besteht aus einem oberen, fixen Teil und einen unteren, durch den Motor angetriebenen Teil. Der obere Teil wird auf und ab gestellt und somit wird die größe des Mahlguts verstellt.

Um den oberen Teil abzunehmen, müsst ihr nun den Mahlgrad bis zum Anschlag nach unten drehen und anschließend die Verriegelung auf der Hinterseite drücken. Nun könnt ihr die Einstellung für den Mahlgrad weiter gegen den Uhrzeigersinn drehen, bis ein mechanischer Anschlag das weitere Verdrehen verhindert.

Ihr könnt jetzt den oberen Teil des Mahlwerks von der Maschine nach oben abheben. Widmen wir uns zunächst dem oberen Teil, der aus der äußeren Drehverstellung (hellgrau) und dem Mahlwerk selbst besteht. Auch diese beiden Dinge kann man trennen, indem ihr den Metallbügel des Mahlwerks anhebt und das Mahlwerk gegen den Uhrzeigersinn aus dem großen Teil rausdreht. Beide Teile könnt ihr nun getrennt reinigen und ggf. trocknen lassen.

ACHTUNG: Folgende Schritte dürfen nur erledigt werden, wenn die Mahlmaschine von der Netzversorgung getrennt wurde!

Nun zum unteren Teil: Oftmals reicht es bereits diesen mit einem kleinen Besen auszukehren oder mit einem Sauger zu reinigen. Hilfreich ist auch das verkehrte ausleeren. Soll es aber mal richtig sauber werden, dann muss noch eine Abdeckung runter.

Wenn ihr nun von oben drauf schaut, dann seht ihr vier Schrauben. Diese einfach mit einem Kreuzschraubendreher lösen. Nun könnt ihr die Abdeckung auf der Hinterseite, also gegenüber vom Auslass des Kaffeeguts abheben und rausnehmen.

Nun fehlt noch ein Deckel der vorne beim Auslass drüber liegt, den könnt ihr auch einfach rausnehmen und separat reinigen.

ACHTUNG: Diese Maschine hat auf der Hinterseite zusätzlich eine Sicherung integriert, damit sie nicht ohne den oberen Teil des Mahlwerks loslegt und diese ist nun freigelegt. Die liegt einfach nur oben drauf und kann evtl. eingesaugt werden. Weiters ist diese Sicherung mit der Netzversorgung verbunden, also nochmal, vorher Maschine abstecken!

Der Zusammenbau ist ganz einfach. Die Teile einfach wieder in der verkehrten Reihenfolge festmachen und verschrauben. Den oberen Teil des Mahlwerks innerhalb des hellgrauen Außenrings drauflegen

und leicht in eine Richtung drehen bis er nach unten fällt.

Dann könnt ihr die Verriegelung hinten schließen. Beim Drehen des Mahlgrads sollte der innere Teil in der maximalen Stellung nur ganz leicht drüberstehen und in der anderen ganz leicht unter der Kante des äußeren Mahlwerkteils.

Falls ihr mit dieser Maschine nicht fein genug mahlt, um einen guten Espresso hin zu bekommen, könnt ihr hier mit einem Trick noch ein wenig feiner mahlen. Dazu einfach dieses Video ansehen.

Viel Spaß beim Reinigen eurer Graef CM 800

Bluetooth Headset und externes Mikrofon am Windows PC

Im vorigen Blogpost hab ich grundlegend beschrieben, warum ein Bluetooth Headset am PC nur sehr schlechte Soundqualität liefert wenn man es für Mikro und Tonausgabe zugleich verwendet. Meine Abhilfe dahingehend war ein externes Ständermikrofon zur Eingabe und das Headset als Kopfhörer.

Nachdem sich das Headset allerdings mit zwei Profilen beim PC anmeldet, kommen einige Proigramme durcheinander wenn man beides tun möchte, also Sprache zur Eingabe und Hören über die Bluetooth Kopfhörer als Ausgabe. Ein Beispiel dafür ist Teamspeak.

Sobald man Teamspeak startet, schaltet das Programm die Windows Audio Einstellungen automatisch auf den Hands Free Mode um und die Soundqualität ist meh.

Der Trick dabei ist, einfach den Hands Free Modus in den Soundeinstellungen zu deaktivieren. Dazu geht ihr in die Einstellungen.

Und hier dann oben im Suchfeld “Sound” eingeben und unten dann “Eingabegeräte verwalten” auswählen.

Hier sollte nun bei Ausgabegeräte und bei Eingabegeräte jeweils euer Headset einmal als “Kopfhörertype Stereo” und einmal als “Kopfhörertype Hands-Free” auftauchen. Dabei einfach jeweils dieses Hands-Free Gerät auswählen (einmal darauf klicken) und auf Deaktivieren klicken.

Wenn ihr Teamspeak nun neustartet und vorher rechts unten bei der Uhr am Lautsprecher Symbol das Headset mit der Bezeichnung Stereo ausgewählt habt. Sollte Teamspeak auch dieses für die Soundausgabe verwenden (sofern in den Einstellungen Windows Standard gewählt wurde). Als Mikro verwendet ihr dann das extern angeschlossene Mikro.

Falls ihr noch Fragen habt, bitte einfach hier kommentieren. Ansonsten wünsch ich allen Leser-innen einen guten Rutsch ins neue Jahr 2021.

Sg Euer Matze

Probleme mit Bluetooth Headsets am PC/Notebook für Gaming oder Video-Konferenzen

Bluetooth ist ein Funkstandard zum Übertragen von Daten, soweit so gut. Es gibt da mittlerweile einige Versionen und die zwei aktuell gängigsten sind die Version 4.2 und 5.0. Mehr Details zu den einzelnen Versionen findet ihr hier. Wichtig für den Durchbruch von Bluetooth war die Version 4, da hier der Low Energy Standard (abgekürzt LE) eingeführt wurde, was zu einer enormen Laufzeitverbesserung aller mobilen Geräte geführt hat.

Ich schreibe hier diesen Artikel, da ich mich heuer etwas über diesen Bluetooth Standard geärgert habe und ich einen halben Tag recherchieren musste, bis ich dem Problem auf den Grund gegangen bin.

Wie viele andere wurde ich 2020 ins HomeOffice geschickt. HomeOffice heißt aber nicht unbedingt weniger Besprechungen, die meisten sind halt von zuhause aus, digital und eben mit Mikrofon und Lautsprecher – oder noch komfortabler mit Headset. Das ganze funktionierte super mit meinen Bose Quiet Comfort 25, da die per Kabel an die Soundkarte des Firmen-Notebooks angeschlossen waren. Das heißt, Spotifyhören in hoher Qualität und fliegend in die nächste Besprechung gehen und dort mit hoher Qualität diese abhalten, alles kein Problem. Die Aufnahme wurde also mit Mikrofon und die Ausgabe über Lautsprecher simultan erledigt. Einziger Nachteil an dem Ganzen: Das Kabel ist manchmal schon sehr nervig.

Weihnachten nahte und ich bekam heuer das Top Modell von (Achtung Amazon Affiliate Link, mehr dazu hier) Sony den WH-1000XM4 geschenkt. Endlich ein toller Bluetooth Lautsprecher mit Bluetooth 5.0 und Noise Cancelling. Die Sound-Ausgabe bei den Dingern ist super und auch das Telefonieren mit dem Handy funktioniert einwandfrei.

Nun zu meinem Problem mit Bluetooth in der aktuell verbreiteten Version: Ich zocke ab und zu mit ein paar Kollegen online. Wir treffen uns dazu im Teamspeak mit Headset und spielen diverse Titel auf und ab. Auch zu Weihnachten das sogenannte “Weihnachtszocken” hat schon Tradition. Also dachte ich mir, super mit den neuen Kopfhörern muss das ja der Wahnsinn sein. Doch leider wurde ich ordentlich enttäuscht. Ich bekam die Kopfhörer im Teamspeak einfach nicht ordentlich zum Laufen. Die Sound Qualität war ähnlich wie bei den alten Analogtelefonen von früher und auch meine Freunde haben mich nicht ordentlich verstanden. Etliche Hilfen in HiFi und anderen Foren brachten nicht die nötige Abhilfe. Was ist hier das Problem? Mal ein kurzer Ausflug in die Welt von Bluetooth.

Zuerst nochmal zur Übertragungsart: Bluetooth ist ein Funkstandard und überträgt Daten im 2.4Ghz Band wie das bekannte WLAN im 802.11b und g Standard. Ich möchte hier eigentlich nur noch die Bluetooth Technik ab V4.2 behandeln, da alles vorher sowieso schon länger nicht mehr Strandard ist und verwendet wird.

Damit ein Gerät mit einem anderen kommunizieren kann, müssen sich die beiden auf eine Art Austauschformat oder auch Protokoll einigen. Um einen Wildwuchs an Protokollen diverser Hersteller zu verhindern, hat die Bluetooth Special Interest Group (BSIG) dies mit diversen Profilen standardisiert.

Also um das nochmal festzuhalten: Damit ein Gerät mit einem anderen reden kann, müssen beide sich auf ein gewisses Bluetooth Profil einigen und natürlich auch beide Seiten das Profil implementiert haben. Dem Physical Layer, also der Übertragungsschicht, ist es prinzipiell egal, welche Daten übertragen werden. Die Profile werden in Software abgehandelt und folgende, für uns wichtige Profile seien hier als Beispiel genannt:

  • A2DP – Advanced Audio Distribution Profile: Profil zum Übertragen von Stereo Audio Daten an ein entsprechendes Empfangsgerät. Darüber liegt meist noch ein Codec, dazu kommen wir noch.
  • AVRCP – Audio/Video Remote Control Profile: Dient zum Fernsteuern von Audio- und Videogeräten. Hier werden Dinge wie nächster Titel, vorheriger Titel, lauter, leiser usw… abgehandelt. Ohne dieses Profil kann auch keine Fernsteuerung des Sendegeräts erfolgen.
  • HFP – Hands Free Profile: Erlaubt es Autoherstellern einen standardisierten Zugang zu den Empfangsgräten (Smartphones oder einfach nur Handys) für Telefonie herzustellen. Wichtig hierbei ist, dass die Verbindung zwischen Auto und Gerät geregelt wird. Dabei sind neben normaler Telefonie auch weitere Telefon-übliche Dinge wie zuletzt angerufenen Teilnehmer anrufen, Telefonat halten usw… standardisiert. Dieses Profil wird meist in Kombination mit dem HSP Profil implementiert, um den Funktionsumfang zu erweitern. Für HFP gibt es mehrere Versionen. Die Version 1.6 hat den mSBC Codec eingeführt, dies bedeutet Sprache in 16kHz mono mit SBC Codec. Die Version 1.7 hat kleinere Metaabfragen hinzugefügt für zB. Battery-Level.
  • HSP – Headset Profile: Standardprofil für Bluetooth Headset und ursprünglich für Telefonie gedacht. Daten werden mit maximal 64kBit/s ausgetauscht und es gibt auch Funktionen zum Lauter und Leisterstellen bzw. Anrufannehmen und Auflegen.

Es gibt noch eine Reihe anderer Profile und die Liste ist lang, die oben genannten sind die wichtigsten für Telefonie und Audio-Übertragung. Eine komplette Liste gibts hier.

Also wie erwähnt, obige Profile sind für uns am wichtigsten, um:

  • Musik zu hören (A2DP), one way
  • unsere Playlist am Sendegerät fernzusteuern (AVRCP), bsp Spotify nächster Titel
  • zu telefonieren und währenddessen lauter & leiser stellen bzw. abheben und auflegen (HSP)
  • im Auto zu telefonieren, lauter & leiser stellen bzw. auch letzten Anrufer nochmals anzurufen (HFP)

Wie ihr bereits erkennen könnt, ist das A2DP Profil nur One-Way, das heißt die Daten fließen in (meist, je nach Codec) hoher Qualität nur vom Sendegerät, also euerem Smartphone, zum Kopfhörer. Es gibt hier keine Möglichkeit gleichzeitig die Mikrofon-Signale vom Kopfhörer ans Sendegerät zurückzusenden. Dafür ist dieses Profil nicht gedacht.

Wenn man nun in beide Richtungen Daten übertragen möchte, muss man entweder das HSP oder das HFP Profil verwenden, doch leider wird hier die Bandbreite sehr begrenzt und das ist auch das Problem.

Windows erkennt beim Verbindungsaufbau über den Bluetooth Dongle mit euren Kopfhörern meist zwei Geräte:

  • Kopfhörer Type (Stereo): Hier wird das A2DP Profil angeboten und übertragen, also reiner Sound in die Kopfhörer Richtung und je nachdem was der Bluetooth Kopfhörer kann auch ein entsprechender Codec mit der jeweiligen Qualität.
  • Kopfhörer Type (Hands free): Hier wird das HFP oder HSP Protokoll angeboten, also in beiden Richtungen allerdings mit geringer Qualität.

Windows hält sich bei letzterem meist bedeckt, welches Profil verwendet wird. Zumindest konnte ich das auf die Schnelle nicht rausfinden.

Das ganze wurde auch mit Bluetooth 5.0 nicht besser, was heißt für Gamer sieht es bis hierhin zumindest sehr mau aus. Es bleibt nur noch ein separates Mikro zu verwenden und die Soundsignale allein über Bluetooth zu übertragen.

Mit Bluetooth 5.2 sollen die Audioprofile überarbeitet werden und dann kommen vermutlich neue Profile dazu, wo diese Übertragung mit hoher Soundqualität in beide Richtungen klappen sollte. An der Bandbreite würde es nach aktuellem Standard (bei 5.0 ca. 3Mbps) nicht happern. Mal schauen, was hier 2021 noch bringt: wahrscheinlich neue Dongles und neue Kopfhörer mit den neuen Profilen, vermutlich wird das ganze nicht mit einem Update der Kopfhörer Firmware zu machen sein.

Ein Wort noch zu den Codecs: Oft hört man ja die Begriffe SBC, aptX usw. Das sind die Sound Codecs, die auf dem Profil A2DP verwendet werden, um den Sound komprimiert zu übertragen, damit Bandbreite gespart und somit auch weniger Energie verbraten wird. Hier gibt es eigentlich folgende bekannte Codecs:

  • AAC (Apple): Ist der Standard Audio Codec der Apple Geräte und soll als Nachfolger für MP3 gehandelt werden. Dieser Codec ist bei den Bluetooth Geräten weit verbreitet und wird auch breit unterstützt.
  • aptX (Qualcomm), HD, Low Latency (LL), Adaptive: sind Audio Codecs von der Firma Qualcomm (also eigentlich hat Qualcomm die Technik auch nur zugekauft) und ist somit in allen Android Geräten mit Snapdragon Prozessor standardmäßig mitgeliefert. Dieser Codec ist lizenzpflichtig und somit nicht sehr verbreitet. Gerade fürs Gaming ist jedoch die Erweiterung mit Low Latency geeignet, um hier möglichst ereignisnahe den Sound zu hören, der auch zum Bild passt.
  • LDAC (Sony): Audiocodec von Sony, wo auch der Encoder als OpenSource unter der Apache Lizenz 2.0 veröffentlicht wurde. Dieser Codec gilt als Hauptkonkurrent zu aptX von Qualcomm. Anders als bei aptX kann dieser Codec frei verwendet werden.
  • SBC (BSIG): Low Complexity Subband Codec ist ein Standard Audio Codec, der speziell für das Bluetooth Profil A2DP entwickelt wurde und muss von allen Herstellern, die Bluetooth einsetzen, unterstützt werden.

Wichtig hier, diese Codecs müssen von Empfangs- und Senderseite unterstützt werden, damit die Geräte miteinander kommunizieren können. Ist dies nicht der Fall, wird als Fallback der SBC Codec mit dementsprechend schlechterer Qualität verwendet. Zudem können diese Codecs (außer SBC) nicht bei HFP oder HSP verwendet werden, was uns wiederum zum ursprünglichen Problem führt.

Teamspeak und Gaming über Bluetooth Headset wird es nicht so schnell spielen. Vielleicht kommen hier ja 2021 mit dem neuen, überarbeiteten Bluetooth 5.2 Standard noch spannende Produkte auf den Markt.

Ich hoffe, mit diesem Artikel ein paar Leuten die Suche nach der Headset Problemlösung verkürzt zu haben. Ich habe mir auf Amazon (Achtung Amazon Affiliate Link, mehr dazu hier) ein Ständer Mikro gekauft und verwende das nun als Aufnahmegerät und das Sony Headset ist mein Kopfhörer.

Einige Quellen:

Dockercontainer über subdomains erreichen

Über Docker lassen sich Webservices komfortabel auf einem NAS von zu Hause aus hosten. Wenn man zusätzlich ein VPN
einrichtet, kann man auf alle selbstgehosteten Webservices komfortabel und sicher von überall auf der
Welt darauf zugreifen. Wenn man nun aber – wie ich – damit begonnen hat, intensiv auf solche selbstgehosteten
Webservices zu setzen (nur als Beispiel, gitlab, nextcloud, bitwarden, teamspeak) muss man sich mit der Zeit
einige Ports merken, um auf die Webservices zuzugreifen. Schließlich läuft jeder Webservice in einem eigenen Dockercontainer
und besitzt einen eigenen Port. Hier die Übersicht zu behalten, ist mit der Zeit unmöglich. Vielleicht weiß man beim Einrichten
noch, welchen Port man einem Webservice gegeben hat, aber nach spätestens nach 1-2 Monaten hat man den Port vergessen. Bookmarks helfen
hier zwar, aber deutlich eleganter ist es Subdomains für die Webservices einzurichten.

Um Subdomains im lokalen Netzwerk einzurichten, kann man im Prinzip jeden Webserver verwenden und konfigurieren (z.B. nginx oder apache), aber ich bin nun – besonders in der
Kombination mit Docker – auf einen komfortableren Weg gestoßen einen reverse proxy einzurichten: Traefik ist ein sogenannter Edge
Router, der genau für Services wie Docker, Docker Swarm, Kubernetes (etc.) entwickelt worden ist. Einmal eingerichtet, erkennt
Traefik automatisch alle Dockercontainer, die gerade laufen. Die Dockercontainer kann man über Labels bei der Erstellung so
einstellen, dass Traefik automatisch Subdomains dafür einrichtet. Außerdem sieht man über ein Webinterface sofort den Status der so
verfügbaren Container.

Hier eine kurze Anleitung dazu, wie man Traefik installiert, konfiguriert und anschließend einen Dockercontainer über eine
Subdomain erreichen kann. Die Anleitung setzt die vorige Installation von Docker und Kenntnis darüber voraus.
Zunächst muss das offizielle Traefik Dockerimage gepulled werden und ein Container damit angelegt werden.

docker pull traefik:latest
docker create -p 443:443 
              -p 80:80 
              -p 8080:8080
              -v /volume1/docker/traefik-config/traefik.yml:/etc/traefik/traefik.yml
              -v /var/run/docker.sock:/var/run/docker.sock
              --name traefik1 traefik:latest

Der Container ist eingerichtet, dass https und http einfach weitergeleitet werden. Falls man auf seinem Heimserver schon einen
apache oder Ähnliches laufen hat, oder man einfach nicht die Standardports verwenden will, kann man natürlich auch andere Ports verwenden.
Im yml File auf das verwiesen wird, steht die Konfiguration von Traefik. Im einfachsten Fall kann diese wie folgt lauten:

# /volume1/docker/traefik-config/traefik.yml

providers:
  docker:
    exposedByDefault: false
api:
  insecure: true

Der Pfad in den “docker create” Parametern muss natürlich angepasst werden. Diese Konfiguration stellt sicher, dass nicht alle,
sondern nur speziell angegebene Dockercontainer über Subdomains erreichbar sind – Mir ist es lieber hier die Kontrolle zu haben,
außerdem muss man bei der Erstellung ohnehin Labels für Traefik anlegen.
Das wars auch schon mit der Konfiguration von Traefik. Natürlich kann man noch SSL Zertifikate usw. angeben, aber das wäre dann ein
Thema für einen anderen Eintrag. Traefik muss nun nur noch gestartet werden.

docker container start traefik1

Über localhost:8080 kommt man auf das Webinterface. Jetzt, wo noch keine Dockercontainer für Traefik freigegeben sind, ist dieses zwar hübsch
anzusehen, aber noch relativ leer. Um einen Container für Traefik verfügbar zu machen, muss die Erstellung eines Containers um Labels erweitert
werden.

docker create [...] \
              -l "traefik.enable=true" \
              -l "traefik.http.routers.<CONTAINER_NAME>.rule=Host(\"container.example.com\")" \
              -l "traefik.http.services.<CONTAINER_NAME>-service.loadbalancer.server.port=80" \
              [...] 

Diese 3 Labels reichen im Normalfall aus, um einen Container über eine Subdomain im lokalen Netzwerk verfügbar zu machen. Durch die angegebenen
Labels, leitet Traefik über reverse-proxy auf den Container um. Die Angabe des Port ist nicht unbedingt nötig, sollte ein Container nur
einen Port verwenden, erkennt Traefik diesen automatisch. Einige Webservices verwenden aber mehrere Ports und hier muss der Port dann explizit
angegeben werden.

Let’s encrypt Zertifikate für Hosted Websites

Bei Hosteurope gibt es die Möglichkeit Let’s encrypt Zertifikate zu verwenden, allerdings müssen diese manuell angelegt und auch (alle 3 Monate) erneuert werden. Der Vorteil bei diesen Zertifikaten ist, sie sind gratis, der Nachteil man muss die Schritte bis zum eingetragenen Zertifikat für Hosteurope manuell durchführen. Andere Hosting Provider sind hier schon weiter, ich habe leider keine Ahnung warum sich Hosteurope weigert Let’s encrypt direkt aufzunehmen, es wird wohl ums Geld gehen, da das automatisierte Anlegen und Erneuern ebenso angeboten wird, allerdings gegen Bares.

Nichts destotrotz, die Möglichkeit gibt es, manuell halt. Hosteurope hat hierzu auch eine Anleitung veröffentlicht die es Schritt für Schritt zeigt (zu finden hier). Leider ist der ZeroSSL Service ab nun für Wildcard Domains kostenpflichtig und somit für manche auch keine Alternative mehr. Also nützt es nichts, man muss sich doch mit dem Certbot auseinandersetzen.

Certbot ist ein Tool welches für Zertifikaterstellung/erneuerung der Let’s encrypt Zertifikate zuständig ist. Das Tool ist in Python geschrieben und einfach zu handhaben. Die größere Arbeit ist es, sich in die vielen Möglichkeiten und die für einem selber notwendigen Schalter dieses Python-Kommandozeilentools einzulesen.

Meine Voraussetzungen:

  • Webspace bei Hosteurope (Webhosting Basic oder Premium, somit kein Zugriff auf Webserver Konfigs o.ä.)
  • Die Domain ist entweder direkt bei Hosteurope gehostet/gekauft oder bei einem externen Anbieter (domaindiscount24)

Um für diese Anfordungen ein Zertifikat zu bekommen, muss man Zugriff auf die DNS-Konfig haben, um eben TXT Einträge erledigen zu können und man muss vom Hosting-Provider die Möglichkeit haben manuell Zertifikate hochladen zu können.

In diesem Beispiel wird ein Let’s encrypt Zertifikat für seesle.at und *.seesle.at erstellt. Die Domain und die Website liegt bei Hosteurope.

Der Aufruf bei certbot sieht wie folgt aus:

sudo certbot -d "seesle.at,*.seesle.at" --manual-public-ip-logging-ok --manual --preferred-challenges dns certonly

Dabei bedeuten die Schalter folgendes:

  • -d: Domainnamen als Liste mit , getrennt; Durch den *. in der Wildcard Domain muss man für den Befehl diesen Parameter unter “” setzen
  • –manual-public-ip-logging-ok: Let’s encrypt verlangt, dass die IP des Rechners auf dem der Certbot ausgeführt wird mitgeloggt wird und auch öffentlich einsehbar ist, das Ganze kommt als Abfrage und bei Nein bekommt man kein Zertifikat; Mit diesem Schalter stimmt man dem explizit zu
  • –manual: bedeutet, dass die Ausführung von Certbot interaktiv (mit Abfragen und Text) in der Kommandozeile durchgeführt wird.
  • certonly: Das Zertifikat wird erstellt und lokal gespeichert aber nicht installiert; Der Grund hier ist, normalerweiße wird certbot auf dem Server auf dem der Webservice läuft ausgeführt und kann somit gleich automatisiert die Zertifikate installieren

Nach bestätigen des Befehls wird (sofern das Zertifikat noch nie erstellt wurde) eine E-Mail Adresse als Admin Adresse abgefragt. Wenn es sich um eine Erneuerung des Zertifikats handelt, dann bekommt man sofort den ersten Schlüssel den man im DNS-Eintrag ablegen muss.

Der Schlüssel besteht aus einer gewissen Anzahl an Zeichen/Sonderzeichen und muss nun direkt aus der Kommandozeile rauskopiert werden.

Nun geht man zu Hosteurope ins KIS und geht auf Domainservices -> Domain Administration -> Nameserver – / DNS-Einträge bearbeiten. In der Liste unten wählt man nun die Domain aus und klickt auf editieren.

Sollte der TXT Eintrag im Falle einer Zertifikatserneuerung bereits gemacht worden sein, dann einfach den Eintrag _acme-challenge.seesle.at raussuchen und dort den Schlüssel hinterlegen. Falls dieser noch nicht gemacht wurde, kann er ganz unten angelegt werden.

Wichtig hier: Falls man die normale Domain und alle Subdomains (mittels Wildcard Zertifikat) beim Certbot angegeben hat, muss man zwei TXT Einträge mit _acme-challenge.seesle.at anlegen

Wenn die Keys eingegeben sind, müssen sie mit jeweils nacheinander einem Klick auf zunächst Update und anschließend Speichern bestätigt werden.

Nun muss man ein paar Minuten warten bis die Einträge im DNS-System verfügbar werden. Zur Prüfung kann hierzu eine DNS TXT-Abfrage durchgeführt werden. Bei mir lokal, hat mein Router diese Einträge gecached und somit teils sehr lange nicht erneuert deshalb hab ich dann auf folgendes Tool zurückgegriffen.

Wenn hier die zwei Schlüssel korrekt angezeigt werden, kann man wieder zurück zum Certbot in die Kommandozeile und mit Enter die Zertifikatserstellung abschließen.

Certbot prüft nun ob die Keys an den korrekten Stellen eingetragen wurden (und ob man dadurch auch der Eigentümer der Domains ist) und erstellt bei Erfolg die Zertifikate ins Verzeichnis:

/etc/letsencrypt/username/live/seesle.at

Für Hosteurope sind die Zertifikate fullchain.pem und privkey.pem wichtig. Die beiden kopiert man sich am besten irgendwohin, wo man auch über den Browser zukommt (ACHTUNG: die müssen im Anschluss wieder lokal gelöscht werden).

Nun geht man bei Hosteurope unter WebHosting -> beim jeweiligen Vertrag auf Konfigurieren -> Sicherheit/SSL -> SSL administrieren

Unten in der Liste sucht man sich die Domain raus, für die das Zertifikat werstellt wurde und klickt auf Ersetzen bzw. Anlegen.

Im folgenden Fenster gibt es drei Felder die mit einer Datei gefüllt werden und ein Passwort Feld:

  • Im Feld Zertifikat lädt ihr das fullchain.pem File rein
  • Im Feld Key lädt ihr das privkey.pem File rein
  • Unser von Let’s encrypt angelegtes Zertifikat benötigt kein Passwort, somit kann dieses leer bleiben.
  • Das Feld CA* wird ebenfalls einfach leer gelassen

Anschließend ein Klick auf Absenden und das Zertifikat sollte hochgeladen sein. Nach ein paar Minuten ist bei korrekter Konfiguration des DNS auch über https erreichbar.

Zwei zusätzliche Dinge sind bei Hosteurope noch zu beachten:

  • Wechselt ihr von http auf https muss meist auch der A-Eintrag im DNS auf eine andere IP gewechselt werden (mehr dazu findet ihr in den FAQs von Hosteurope
  • Diesen Vorgang müsst ihr nun alle 3 Monate durchführen, ihr werdet aber per E-Mail auf die am Anfang eingegebene Adresse 20 Tage vor Ablauf benachrichtigt

Ich hoffe mit diesem Artikel ein geeignete Anleitung für diese Nische verfasst zu haben und würde mich auf Feedback freuen.

Stromverbrauch bei einer Million zusätzlicher E-Autos

Ich bin in der Automatisierungstechnik tätig und arbeite im Bereich Motion Control. Dementsprechend begeistert bin ich von Elektromotoren und verteidige auch den derzeitigen Trend hin zur Elektromobilität.
Mir ist klar:

  • dass E-Autos noch nicht die gewünschte Reichweite haben
  • noch nicht so verfügbar sind wie der Verbrenner-Kollege
  • einige Probleme mit den Akkus noch nicht gelöst sind (Recycling, Ladestationen,…)

Jedoch wenn man sich das Klima weltweit ansieht, kommen wir auf so einen radikalen Umbruch in der Automobilen-Branche nicht drum rum und ganz ehrlich, 95% Wirkungsgrad des E-Antriebs sind hier ein starkes Argument.

Nichts desto trotz kommt es des Öfteren vor, dass ich mit Kollegen oder Bekannten über dieses Thema diskutieren darf und oft fällt folgender Satz: Wenn alle ein E-Auto fahren geht uns der Strom aus.

So, ich hab mal ein wenig nachgerechnet:

Angenommen von heut auf morgen steigen 1.000.000 (eine Million) Österreicher auf ein E-Auto um. Das würde bedeuten, dass bei einem durchschnittlichen Verbrauch von 20kWh/100km (Quelle), was einem mittleren Verbrauch bei eher kalten Temperaturen eines BMW i3 entspricht und bei 34 gefahrenen km/Tag/Österreicher (Quelle), pro Jahr ca. 2482kWh Strom zusätzlich pro Staatsbürger benötigt werden würde. Wenn man dies in € ausdrückt, dann ergibt das jährliche Kosten von 496,4€ bei einem Strompreis von 0,2€/kWh (Quelle) pro Österreicher. Ganz einfach weitergerechnet ergibt das 2482GWh Stromverbrauch in Österreich für eine Million E-Auto Fahrer.

Klingt erst mal viel, aber wenn man das nun auf den jährlichen Gesamtstromverbrauch in Österreich von 63390GWh (Quelle) bezieht, dann wäre das eine Steigerung von 3,915% was wiederum nicht so viel ist.

Also falls ihr auch mal in solch eine Diskussion kommt, hier habt ihr die nackten Zahlen.

PS: Müsste man diese 34km/Tag aufs Jahr gerechnet Diesel tanken kommt man bei einem Dieselpreis von 1,3€/Liter auf Gesamtkosten von 1024€…

iPhone DCIM Übertragung (Photos und Videos) bricht ab

Das Thema nervt mich schon länger und dürfte ab ca. iOS 10 aktuell sein. Wenn man am Windows PC seine Bilder von Hand auf den lokalen PC kopiert, also als DCIM Übertragung im Explorer, dann ist es mir oft (fast immer) passiert, dass er während der Übertragung abgebrochen hat mit einem Fehler: “Ein an das System angeschlossenes Gerät funktioniert nicht.”

Ich konnte diesen Fehler soweit eingrenzen, dass die Übertragung immer bei einem Video abgebrochen hat und hab bisher dann nur noch die Fotos übertragen.

Heute hat es mich so genervt, also mal ein wenig gegoogelt und dann bin ich auf folgenden Eintrag gestoßen: https://communities.apple.com/de/thread/200028951

Anscheinend konvertiert das iPhone beim Übertragen der Dateien die Files in ein anderes Format und dies scheint sich irgendwie nicht ganz mit dem Windows Übertragungsdienst zu vertragen.

Diese Option kann am iPhone in den Einstellungen unter Fotos, ganz unten bei Übertragung auf PC oder MAC mit der Auswahl “Originale behalten” abgestellt werden.

Anschließend muss das iPhone einmal neu mit dem PC verbunden werden und nun sollte alles funktionieren.