Meine WordPress Plugins 2019

Es wird Zeit für eine Aktualisierung! Zuletzt habe ich Anfang 2016 festgehalten welche WordPress Plugins ich verwende. Insgesamt habe ich inzwischen 18 von den nunmehr fast 57.000 Plugins die es für WordPress gibt.

Akismet

Mithilfe von Akismet schütze ich mich seit vielen Jahren sehr effektiv vor Spam. Seit der Installation wurden bei mir mehr als 1.300 Spam-Kommentare gesperrt und in der gesamten Zeit, in der ich das Plugin benutze, wurde nur ein einziger Kommentar davon fälschlicherweise als Spam eingestuft.

Akismet Privacy Policies

Wer in Deutschland lebt, dem Datenschutz gerecht werden möchte und Akismet benutzt kommt um Akismet Privacy Policies eigentlich nicht herum. Dieses Plugin sorgt bei mir dafür dass man beim Kommentieren auf meiner Webseite bestimmten Bedingungen zustimmen muss.

Akismet Privacy Policies Text

Better Search Replace

Dies ist eins von insgesamt vier Plugins, die bei mir meistens deaktiviert sind und nur aktiviert werden, wenn ich sie wirklich benutzen möchte. Ich verwende Better Search Replace dafür um die Datenbank von WordPress oder nur bestimmte Tabellen daraus nach etwas zu durchsuchen und das Gefundene dann durch etwas anderes zu ersetzen. Ein einfaches Beispiel dafür ist die Änderung eines Nicks. Habt ihr euch viele Jahre ABCD genannt aber heißt jetzt DCBA, könnt ihr die Datenbank nach dem alten Namen durchsuchen und durch den neuen ersetzen lassen. Mit diesem Plugin erspart ihr euch den Aufwand alle benötigten Änderungen manuell zu finden und durchzuführen.

Broken Link Checker

Auf meiner Webseite gibt es momentan rund 440 Links. Diese sind entweder intern oder helfen dem Leser der Beiträge bei Unklarheiten nachschauen zu können was etwas bedeutet. Allein in diesem Beitrag gibt es 42 Links. Da mit der Zeit einige Webseiten aus dem Internet verschwinden, Inhalte manchmal entfernt werden oder Links sich auch verändern können, verwende ich das Broken Link Checker Plugin um benachrichtigt zu werden falls etwas mit einem Link auf meiner Webseite nicht stimmt. Zum einen wäre so etwas für den Leser nicht schön und zum anderen wäre das ganze aus der Sicht von SEO (Search Engine Optimization – englisch für Suchmaschinenoptimierung) eine Katastrophe.

Coming Soon Page & Maintenance Mode by SeedProd

Hier haben wir das zweite von meinen vier Plugins, die bei mir meistens deaktiviert sind. Das Plugin Coming Soon Page & Maintenance Mode by SeedProd benutze ich im Falle von größeren Umbauten oder Wartungsarbeiten um auf meiner Webseite eine ansprechende Mitteilung diesbezüglich anzuzeigen.

Cookie Notice for GDPR

Damit ich der Cookie-Richtlinie der EU einigermaßen gerecht werde, erscheint auf meiner Webseite ein Hinweistext über die Verwendung von Cookies. Um diesen Hinweis zu platzieren und einzustellen, verwende ich das Plugin Cookie Notice for GDPR.

Cookie Notice

Disable Emojis (GDPR friendly)

Damit durch WordPress keine Grafiken von fremden Servern geladen werden, habe ich das Plugin Disable Emojis (GDPR friendly) installiert. Es deaktiviert die entsprechende Funktion die Text-Smileys in Bilder umwandelt die anschließend von WordPress ausgeliefert werden. Stattdessen werden nun vom Browser unterstützte Smileys angezeigt.

Easy FancyBox

Ich finde es nicht schön, wenn sich Bilder, die man auf einer Webseite größer anschauen möchte, in einem neuen Tab öffnen oder sogar die Webseite schließen. Daher verwende ich das Plugin Easy FancyBox das Bilder und diverse andere Medien in einer Lightbox öffnet und sie über der Webseite anzeigt ohne diese zu schließen.

Easy FancyBox

Enlighter – Customizable Syntax Highlighter

Ab und an zeige ich in meinen Beiträgen Teile von Code. Zum Beispiel hier: Ein WordPress Plugin Multisite Kompatibel machen. Damit das ganze schön aussieht und gut strukturiert ist, verwende ich das Plugin Enlighter – Customizable Syntax Highlighter.

Enlighter

Google XML Sitemaps

Damit Suchmaschinen meine Webseite leichter „verstehen“ und erfassen können, verwende ich das Plugin Google XML Sitemaps. Es erstellt eine virtuelle Sitemap um festzuhalten wie die Inhalte meiner Webseite strukturiert sind und was eine höhere Priorität hat. Außerdem werden durch diese Datei wertvolle Metadaten über meine Inhalte mitgeteilt. Dieses Plugin ist wie der „Broken Link Checker“ aus SEO-Gründen im Einsatz.

MailPoet

Beim Veröffentlichen eines neuen Beitrages sendet MailPoet automatisch eine E-Mail an die Abonnenten meiner Webseite. Es hat sehr viele Optionen und Einstellungsmöglichkeiten und bietet auch die in Deutschland benötigte Funktion des Double-Opt-In an.

Optimize Database after Deleting Revisions

Das Plugin Optimize Database after Deleting Revisions hatte ich vor ein paar Jahren bereits vorgestellt. Ich verwende es regelmäßig um meine WordPress Datenbank zu entmüllen und zu optimieren. Seit dem ersten Lauf habe ich bereits über 27Mb Datenmüll aus der Datenbank entfernt.

Regenerate Thumbnails

Dies ist das dritte von meinen vier Plugins, die bei mir meistens deaktiviert sind. Mit Regenerate Thumbnails können alle Vorschaubilder von Grafiken, die man hochgeladen hat, neu erstellt werden. Das ist praktisch, wenn man beispielsweise ein neues Theme verwendet oder etwas an den Größen der Webseite ändert.

Subscribe to Comments Reloaded

Damit keiner eine Antwort auf seinen Kommentar verpasst, habe ich das Plugin Subscribe to Comments Reloaded im Einsatz. Wie bereits das Plugin „MailPoet“, bietet auch dieses Plugin die in Deutschland benötigte Funktion des Double-Opt-In an. Man kann entweder vor dem Absenden eines neuen Kommentares diesen Service aktivieren oder aber auch die Benachrichtigungen abonnieren ohne einen Kommentar zu schreiben.

Subscribe to Comments Reloaded

Thumbnail Cleaner

Hier haben wir das letzte von meinen vier Plugins, die bei mir meistens deaktiviert sind. Ich verwende Thumbnail Cleaner im Zusammenhang mit „Regenerate Thumbnails“ und erstelle hiermit Backups und lösche alle vorhandenen Vorschaubilder.

TinyMCE Advanced

TinyMCE Advanced habe ich euch bereits vorgestellt. Mit diesem Plugin kann man den WYSIWYG (What You See Is What You Get englisch für: Was du siehst, ist das, was du bekommst) Editor von WordPress um praktische Funktionen erweitern und ihn sich nach den eigenen Wünschen gestalten.

TinyMCE Advanced

Two Factor Authentication

Das Plugin Two Factor Authentication fügt mit der Zwei-Faktor-Authentifizierung ein weiteres Sicherheitsfeature zum Login von WordPress hinzu. Nach der Eingabe von Benutzername und Passwort muss man nun zusätzlich noch ein Einmalkennwort eingeben welches bei mir mithilfe der Authy App erstellt wird.

W3 Total Cache

W3 Total Cache ist eins meiner wichtigsten Plugins. Es beschleunigt die Ladezeiten meiner Webseite erheblich und entlastet zudem den Server indem es viele Inhalte in einem angelegten Cache bereitstellt und diverse Dateien kombiniert. In der Regel sind die Ladezeiten meiner Webseite durch das Plugin unter einer Sekunde gerutscht. Vorher waren sie meistens bei 3-4 Sekunden. Dies ist ein deutlich spürbarer Unterschied und hat einen großen Einfluss auf das Nutzungserlebnis sowie viele Bereiche des SEO.

Von |2018-10-26T02:54:38+00:0019. Oktober 2018|Alle, Beiträge, WordPress|1 Kommentar

FRITZ!Box Smart Home Geräte mit dem Google Assistent steuern

In diesem Artikel habe ich euch bereits gezeigt wie es möglich ist Smart Home Geräte an eurer Fritz!Box mit dem Google Assistent beziehungsweise dem Google Home zu steuern. Dies war jedoch recht aufwendig und geht inzwischen deutlich einfacher und mit einer geringeren Verzögerung.

Fritz!Box vorbereiten

Um über das Internet auf eure FRITZ!Box zugreifen zu können, müsst ihr entweder einen DynDNS Account in den Einstellungen hinterlegt haben oder, wie ich, den MyFRITZ! Dienst von AVM nutzen. Falls Ihr euch jedoch für einen DynDNS Anbieter entscheiden solltet, empfehle ich den kostenlosen und zuverlässigen DynDNS Service. Zusätzlich wird ein neuer Benutzer benötigt dem nur der Zugriff aus dem Internet und auf die Smart Home Funktionen gewährt wird. Wie das alles eingerichtet wird, erfahrt ihr online im Service-Bereich von AVM.

FB Smart Home einrichten

Auf der Webseite von FB Smart Home müsst ihr zu den Einstellungen gehen und euch mit eurem Amazon Account einloggen. Anschließend erscheinen drei Eingabefelder in denen ihr eure MyFRITZ!- bzw. DynDNS-Adresse, den Benutzer und das Passwort des Benutzers eingebt.

FB Smart Home Daten

Mit einem Klick auf „Verbindung testen“ wird, oh’ welch Überraschung, die Verbindung zu eurer FRITZ!Box überprüft. Wenn alles erfolgreich war, wird dementsprechend eine Meldung angezeigt und eure Smart Home Geräte ausgelesen die dann etwas tiefer auf der Webseite angezeigt werden. Dort am Ende der Liste müsst ihr auf „Daten speichern“ klicken.

Google Home App

Fügt das Konto beziehungsweise den Dienst „FB Smart Home“ hinzu, richtet abschließend alle Smart Home Geräte ein und weist ihnen Räume und Namen zu.

Testen

Nun sollte alles funktionieren und die Steuerung eurer Smart Home Geräte per Sprache möglich sein! Viel Spaß!

Von |2018-10-18T15:50:26+00:0018. Oktober 2018|Alle, Beiträge, Hardware|1 Kommentar

Wo waren denn die Blumen?

Kurzgeschichte von Christina S.

Montag, 23. Oktober 2017. Seit sechs Tagen liege ich im Krankenhaus. Vor fünf Tagen war die Operation. Ein Krankenhaus in Nordhessen. Ein Zweibettzimmer im dritten Stock. Noch ist alles ruhig, man könnte fast sagen: friedlich.

Plötzlich klopft es. Die Tür geht auf. Ich traue meinen Augen kaum. Da ist man gerade mal ein paar Tage nicht auf der Arbeit und schon verfolgt sie einen. In der Tür steht Frau Müller, unsere Sekretärin. Ich bin nicht sonderlich begeistert, sie hier zu sehen.

Sie überreicht mir einen Umschlag. „Vom Chef“, sagt sie. Ich bin verwirrt. Mein Kopf rattert. Ein Umschlag vom Chef? Was kann das sein? Eine Kündigung, weil ich krank geworden bin? Zuzutrauen wäre es ihm. Er hat ja auch schon einmal einer Schwangeren gekündigt. Und weil Schwangere eigentlich Kündigungsschutz haben, hat er beim Regierungspräsidium extra die Genehmigung der Kündigung beantragt. Und nun liege ich schon seit einer Woche auf seine Kosten im Krankenhaus. Er musste mein Gehalt weiter bezahlen, der Arme. Da kann man es ihm nicht verdenken, eine Kündigung auszusprechen. Zumal er auch eine Person weniger zum herum scheuchen hat. Außerdem lässt man Kündigungen am besten persönlich übergeben. Dann kann hinterher keiner behaupten, er habe sie nie erhalten. Zudem spart man sich auch noch das Geld fürs Porto. Eventuell noch als Einschreiben… Nein, viel zu teuer.

Es ist aber keine Kündigung. „Da drin ist der neueste Schriftverkehr aus ihrem aktuellen Vorgang“, teilt Frau Müller mir mit. „Sie können es sich ja mal angucken, hat der Chef gemeint“. Ich sage „mal sehen“ und lege den Umschlag beiseite. In Wirklichkeit meine ich: „Nie im Leben! Ich bin schließlich krank.“ und schmeiße den Umschlag zum nächstmöglichen Zeitpunkt in den Müll. Meine Bettnachbarin bemitleidet mich und findet meinen Arbeitgeber unmöglich. Ich auch.

Aber schlimmer geht immer. Einige Zeit später ruft er persönlich an. Er meint, alle machten sich große Sorgen, weil man so lange nichts von mir gehört habe. Das glaub ich gern. Sie müssen ja jetzt meine Arbeit mit erledigen, die Armen. „Wie soll ich denn jetzt die Arbeit verteilen?“, fragt er mich entsetzt. Ich wusste gar nicht, dass dafür neuerdings die Mitarbeiter zuständig sind.

„So was hab ich noch nie erlebt! Das hab ich auch noch nie gehört, dass jemand wegen Husten ins Krankenhaus muss und dann notoperiert wird!“ Ich weiß nicht, ob seine medizinischen Fachkenntnisse über die Lektüre der Apotheken Umschau hinausgehen. Aber es dürfte Schluss nahe liegen, dass es nicht am Husten lag.

Ob ich ihm nicht sagen möchte, was ich habe, will er wissen. Nein, besser nicht. Hinterher hat er bei Google gelesen, dass so etwas teilweise ambulant behandelt wird und ich muss mich noch dafür rechtfertigen, warum ich damit zwei Wochen lang im Krankenhaus lag und danach auch noch krank geschrieben war. Oder ich muss ihm erklären, wieso ich nicht einfach auf die Wechseljahre gewartet habe, er hätte gehört, da ginge so etwas von selber wieder weg.

Wenn ich es ihm nicht sagen möchte, könnte ich es ja auch meiner Kollegin Frau Wind erzählen, denn die kennt einen Arzt und ist deswegen doppelt verschwiegen. Das mit der doppelten Verschwiegenheit habe ich zwar nicht ganz verstanden, aber ich habe auch nicht weiter nachgefragt.

Ob es bei meiner Operation um Leben und Tod ging, erkundigt er sich. Ich habe diese Frage bejaht. Gelogen ist das ja nicht. Aus einer Narkose sind schon manche nicht mehr wieder aufgewacht.

Ich sei ja nun schon so lange krank, ob ich denn überhaupt wiederkommen wolle, möchte er wissen. Natürlich nicht. Deswegen hatte ich das ganze doch überhaupt erst eingefädelt. Ich habe mich schließlich nur deswegen „zum Urlaub machen“ ins Krankenhaus einquartiert, um zu Hause mal herauszukommen und nicht arbeiten gehen zu müssen. Die vierstündige Operation hab ich nur zum Spaß mitgemacht, um etwas Abwechslung zu haben. Und um zu testen, ob die Narkosemittel wirklich so toll sind, wie alle immer sagen. Nebenbei wollte ich mir dann noch einen gut aussehenden Arzt angeln. So einen wie Dr. Brinkmann aus der Schwarzwaldklinik. Das hat auch fast geklappt. Im Krankenhaus hat man mich nur deswegen so lange da behalten, weil mich der Chefarzt so nett fand! Am Geld konnte es ja nicht liegen, schließlich bin ich gesetzlich versichert.

Ich teile ihm mit, dass ich seinen Brief anstatt ihn zu lesen in den Müll geschmissen habe und es unmöglich von ihm finde, seine Arbeitnehmer im Krankenhaus mit Arbeit zu belästigen. Er versteht den Einwand nicht. „Ich wollte Ihnen damit nur eine Freude machen. Sie sollten merken, dass wir an Sie denken.“ Ich starre ihn ungläubig an. Manchmal komme ich mir vor wie im Irrenhaus. Aber ich glaube, im Irrenhaus sind die Leute netter.

Und ich dachte immer, ins Krankenhaus bringt man Blumen mit. Oder Pralinen. Aber was will man auch mit Blumen anfangen? Die verwelken doch nur und sind vergänglich. Er wollte mir ja nur eine Freude machen. Das habe ich scheinbar missverstanden, ich Stoffel*.

*Stọf·fel
Substantiv [der] umgangssprachlich abwertend
ungeschickter, unhöflicher Mensch
Von |2018-10-26T01:09:33+00:0023. August 2018|Alle, Beiträge|0 Kommentare

Status Script für Prozesse und Dienste unter Linux

Wenn man in der Linux Shell schnell, übersichtlich und einfach sehen möchte was für Services bzw. Prozesse (Apache, Postfix, MariaDB etc.) gerade laufen, geht das am einfachsten mithilfe eines kleinen Script. Dies sieht in meinem Fall wie folgt aus:

#!/bin/bash

# Liste der Services
SERVICES=("sshd" "apache2" "mysqld" "master" "irssi")

# Namen der Services
NAMES=("SSH Server" "Apache Webserver" "MariaDB Datenbankserver" "Postfix Mailserver" "irssi Twitch Bot")

aLen=${#SERVICES[@]}

# Kopfzeile ausgeben
echo ""
echo -e "\t--------------------------"
echo -e "\t| States of the services |"
echo -e "\t--------------------------"
echo ""

for (( i=0; i<${aLen}; i++)); do
   # Status prüfen und ausgeben
   if [ "$(pidof ${SERVICES[$i]})" ]; then
      STATE="\033[1;32m[Running]\033[0m"
   else
      STATE="\033[1;31m[Stopped]\033[0m"
fi
# Namen des Services hinter dem Status ausgeben
echo -e "\t$STATE ${NAMES[$i]}"
done
echo ""

Entweder erstellt Ihr eine neue Datei mit dem Namen „status.sh“ und fügt das Script dort ein oder Ihr ladet euch die fertige Datei hier herunter.

Anpassungen an dem Script vorzunehmen ist ganz einfach. Der erstes Eintrag in der vierten Zeile „sshd“ ist der Name des Prozesses. Der erste Eintrag der siebten Zeile „SSH Server“ ist der Name der bei der Ausgabe angezeigt wird. Dieses Paar ergibt zusammen einen Status. Der jeweils zweite Eintrag den zweiten Status. Und so weiter.

Wenn Ihr mit den Anpassungen fertig seid, muss die Datei in euer Home-Verzeichnis hochgeladen und mit dem folgenden Befehl ausführbar gemacht werden.

chmod +x status.sh

Nun kann diese mit Hilfe von

./status.sh

ausgeführt werden. In der Ausgabe ist auf einen Blick zu erkennen ob alles planmäßig läuft. Schön, oder?

services status script

Aber sind wir hier fertig? Nein. Wir sind faul und wollen es einfach. Dies macht Ihr indem eurer „.bashrc“ die folgende Zeile als Alias hinzugefügt wird.

alias status="/home/USER/status.sh"

Der Pfad zum Skript sowie euer Benutzername sollten selbstverständlich angepasst werden. Damit die Änderung übernommen wird, muss die Datei neu geladen werden.

source ~/.bashrc

Wenn alles geklappt hat, könnt ihr jederzeit „status“ in der Shell eingeben und bekommt diese praktische Übersicht.

Jetzt sind wir aber fertig, oder? Fast! Wir sind schließlich nicht nur faul sondern lieben auch Automatisierung! Deshalb wollen wir das ganze direkt nach dem Login angezeigt bekommen. Dafür muss erneut die „.bashrc“ bearbeitet und folgendes (mit angepasstem Pfad und Benutzernamen) eingefügt werden.

import="/home/USER/status.sh"
if [[ -f "$import" ]]; then
   source "$import"
else
   echo "Could not source ${import}. File does not exist."
fi

Ab sofort könnt Ihr euch nach jedem Login einen Überblick verschaffen. – Ganz ohne etwas einzugeben.

Von |2018-10-19T11:40:52+00:0017. November 2017|Alle, Beiträge, Server|0 Kommentare

FRITZ!Box AHA (AVM Home Automation) mit Google Home steuern

Eine neue, günstigere und deutlich einfachere Lösung gibt es hier!

Seit dem 08.08.2017 ist der Google Home mit seinem Google Assistant nun auch in Deutschland erhältlich. Da AVM leider noch immer nicht plant Google Home oder Amazon Echo offiziell zu unterstützen, habe ich nach einem eigenen Weg gesucht um meine Smart Home Geräte von AVM per Sprache zu steuern.

AVM Tweet

Da ich es praktisch finde das keine weitere Basis benötigt wird wenn man eine FRITZ!Box verwendet und ich grundsätzlich die Hardware von AVM sehr mag, finde ich deren Einstellung beziehungsweise Entscheidungen diesbezüglich sehr schade. Abgesehen davon stellt sich mir auch die Frage wie gut man sich auf einem so stark wachsenden Markt behaupten kann wenn man solche Dinge nicht anbietet.

Doch kommen wir nun zu dem eigentlichen Thema: Die Steuerung von FRITZ!DECT 200 und FRITZ!DECT 300 Geräten mithilfe des Google Home. Das ganze funktioniert natürlich auch mit anderen AVM Geräten wie beispielsweise dem FRITZ!DECT 210. Aufgrund der langen Wege die zurück gelegt werden müssen gibt es jedoch eine recht hohe Verzögerung von im Schnitt etwa 5 Sekunden. Sollte jemand damit Probleme haben empfehle ich an dieser Stelle abzubrechen. Technisches Verständnis ist für diese Anleitung sehr empfehlenswert.

Vorgehensweise

Sprachkommando → Google Home → IFTTT (Google Assistent Service) → IFTTT (Maker Webhooks Service) → Aufruf einer URL → DDNS DynDNS Dienst → Raspberry Pi Webserver → fritzctl console → FRITZ!Box → FRITZ!Box AHA Gerät → Schalten

Hardware & Software

Hardware die ich verwendet habe:

  • FRITZ!Box 6490 Cable mit neuster Firmware 6.83
  • Raspberry PI 3 Modell B
  • Diverse FRITZ!DECT 200 und FRITZ!DECT 300 Geräte
  • Google Home

Google Home

Software die ich verwendet habe:

Dienste die ich verwendet habe:

FRITZ!Box vorbereiten

Die FRITZ!Box sollte auf dem neusten Stand sein und somit über das aktuellste FRITZ!OS verfügen. Empfehlenswert wäre es zudem einen extra Benutzer für die Smart-Home Steuerung anzulegen. Um aus dem Internet über eure FRITZ!Box auf den Raspberry Pi zugreifen zu können, müsst ihr neben einem DynDNS Account auch eine Portfreigabe (HTTPS/443) in den Einstellungen hinterlegt haben. Als DynDNS Anbieter empfehle ich euch den kostenlosen und zuverlässigen DynDNS Service. Wie das alles in eurer FRITZ!Box eingerichtet wird, erfahrt ihr online im Service-Bereich von AVM.

Raspberry PI vorbereiten

Auf meinem Raspberry Pi läuft die neuste Version von Raspbian Stretch Lite, Apache sowie PHP. In diesem Howto werde ich aber nicht weiter auf die Grundeinrichtung eines Raspberry Pi und der bekannten Software eingehen. Alle benötigen Anleitungen und Informationen dazu findet ihr schnell über Google. Um jegliche Kommunikation verschlüsselt zu übertragen ist mein Webserver mit einem kostenlosen Let´s Encrypt SSL-Zertifikat ausgestattet. Wie ihr das schnell und einfach einrichten könnt erfahrt ihr hier.

Um unsere AVM Smart-Home Geräte zu steuern muss auf dem Raspberry Pi zusätzlich fritzctl verfügbar sein. Für die Installation fügen wir dem Betriebssystem das benötigte Repository sowie den dazugehörigen Signaturschlüssel hinzu.

echo "deb https://dl.bintray.com/bpicode/fritzctl_deb/ stretch main" | sudo tee -a /etc/apt/sources.list
wget -qO - https://api.bintray.com/users/bpicode/keys/gpg/public.key | sudo apt-key add -

Anschließend aktualisieren wir unser lokales Repository und installieren fritzctl.

sudo apt update
sudo apt install fritzctl

Über den folgenden Befehl wird die Einrichtung des Scriptes gestartet:

sudo fritzctl configure

Sobald alle benötigten Informationen bereitgestellt wurden, könnt ihr eure Smart-Home Geräte bereits über die Kommandozeile steuern. Weitere Informationen dazu erhaltet ihr über den folgenden Befehl:

fritzctl --help

Zwischenstand kontrollieren

  • Ist der Webserver auf eurem Raspberry Pi über die DynDNS Domain erreichbar?
  • Funktioniert die Steuerung eurer Smart Home Geräte über die Kommandozeile?

Wenn alles bisher eingerichtete funktioniert kann sofort es weiter gehen. Andernfalls empfehle ich euch zuerst die Fehler zu beheben.

Script anpassen

Auch wenn das von mir erstellte Script nicht wirklich schön ist funktioniert es zuverlässig und ist sicher. 😉 Ladet euch das ZIP-Archiv mit den benötigten Dateien hier herunter (Version 1.1) und entpackt diese. Anschließend öffnet ihr die Datei „fritz-aha-connect.php“ und nehmt die nachfolgend genannten und notwendigen Anpassungen vor.

// Erlaubte Geräte
$erlaubtegeraete = array(
  "Geraetename1",
  "Geraetename2",
  "Thermostate",
  "GutenMorgen",
  "GuteNacht",
);

Hier wird festgelegt welche Geräte durch dieses Script gesteuert werden dürfen. Die Namen müssen 1:1 aus der FRITZ!Box übernommen werden. Erlaubt sind jedoch nur Großbuchstaben, Kleinbuchstaben und Zahlen. Unter Umständen müsst ihr die Gerätenamen vorher in der FRITZ!Box diesbezüglich anpassen. „Thermostate“ ist ein Platzhalter der es ermöglicht das alle Heizkörperregler gleichzeitig gesteuert werden können. Die beiden Platzhalter „GutenMorgen“ und „GuteNacht“ können dafür verwendet werden um mehrere Steckdosen gleichzeitig zu schalten. Sollten die Platzhalter nicht benutzt oder benötigt werden, könnt ihr diese einfach entfernen.

// Erlaubte Schlüssel
$erlaubteschluessel = array(
  "KEYEINFÜGEN",
);

Um die Sicherheit zu erhöhen wird im Script ein Schlüssel hinterlegt. Dieser muss bei jeder Anfrage übertragen und abgeglichen werden. Ersetzt „KEYEINFÜGEN“ hier auf jeden Fall durch einen selbst erstellen Schlüssel der aus ca. 30 Zeichen besteht. Erlaubt sind hierbei Großbuchstaben, Kleinbuchstaben und Zahlen.

// Geräte abschalten verhindern
$abschaltenverhindern = array(
  "Geraetename2",
);

Wenn bestimmte Geräte nicht ausgeschaltet werden dürfen müsst ihr sie hier auflisten. Beispiel: Server & Computer

// Geräte umschalten verhindern
$umschaltenverhindern = array(
  "Geraetename2",
);

Wenn bestimmte Geräte nicht umgeschaltet werden dürfen müsst ihr sie hier auflisten. Beispiel: Server & Computer

// Befehl ausführen - Temp
elseif( $typ == "300" && $geraet == "Thermostate" ) {
  shell_exec("fritzctl temperature '$status' Geraetename3 Geraetename4 Geraetename5 Geraetename6");
}

Solltet ihr den Platzhalter „Thermostate“ benötigen beziehungsweise verwenden, könnt ihr an dieser Stelle die anzusteuernden FRITZ!DECT 300 Geräte mit Ihren Namen auflisten. Das selbe gilt für die Platzhalter „GutenMorgen“ und „GuteNacht“ im Bereich „Befehle ausführen“ mit ihren FRITZ!DECT 200 Geräten.

Die Dateien müssen nach dem speichern in das Hauptverzeichnis des Webservers hochgeladen werden. Bei mir ist das „/var/www/html/“.

IFTTT vorbereiten

In eurem IFTTT Account benötigt ihr die aktivierten Services Google Assistant und Maker Webhooks.

Verwendete IFTTT Google Home Services

Da es für unsere Zwecke keine passenden Applets gibt müssen wir uns diese selber erstellen. Hierfür gehen wir in den Maker Bereich der IFTTT Plattform und klicken unter „Applets“ – „Private“ auf den „New Applet“ Button. Bei einfachem ein-, aus- oder umschalten müssen die grünen Optionen mit dem entsprechenden Status „on“, „off“ oder „toggle“ verwendet werden. Für mehrere Thermostate oder zum Übergeben eines Wertes sind es die blauen Optionen (Beispiele):

if

Trigger: Google Assistent
„Say a simple phrase“/„Say a phrase with a number“
What do you want to say (Value): Licht/Temperatur auf # Grad einstellen
What do you want the Assistant to say in response? (Value): Ok
Language (Value): German

then

Add action
Action: Webhooks
„Make a web request“
URL (Value): https:// Eure-DynDNS-Adresse .tld/fritz-aha-connect.php
Method (Value): POST
Content Type (Value): application/x-www-form-urlencoded
Body (Value): schluessel=KEYEINFÜGEN&geraet=Geraetename1&typ=200/300&status=toggle/{{NumberField}}
Applet title: Licht/Heizung
Applet description: Licht/Heizung

Nach dem speichern des Applets könnt ihr auf „Want to test or use this Applet yourself? Enable it on IFTTT“ klicken um es zu aktivieren. Wenn ihr alles richtig gemacht habt sollte es auf dieser Seite zu sehen sein. Wenn das der Fall ist könnt ihr ab sofort den von euch eingerichteten Sprachbefehl nutzen. Bitte beachtet das es bei einigen Kombinationen von Wörtern Probleme geben kann da diese teilweise nicht von Google akzeptiert werden. Um solche Fehler auszuschließen empfehle ich, wie in den Beispielen, ganz einfach anzufangen. Solltet ihr ein Applet bearbeiten müsst ihr es unter Umständen erneut aktivieren.

Fertigstellung

Da solche Sachen immer zuverlässig, ohne Probleme und auf Anhieb funktionieren (😋) gehe ich davon aus das alles bestens geklappt hat. Somit könnt ihr nun mit der finalen Einrichtung beginnen und euch alle benötigten Applets erstellen und gegebenenfalls Anpassungen am Script vornehmen.

Über euer Feedback in den Kommentaren würde ich mich freuen.

Von |2018-10-18T23:55:53+00:0027. August 2017|Alle, Beiträge, Hardware, PHP / HTML & Co, Server|5 Kommentare

Let’s Encrypt unter Debian oder Raspbian Stretch einrichten

Verschlüsselung ist schon lange wichtig. Besonders aber dann wenn im Internet persönliche oder empfindliche Daten übermittelt werden. Leider gibt es dennoch viele ungeschützte Webseiten. Let´s Encrypt ist ein kostenloser, automatisierter und offener Herausgeber von SSL Zertifikaten der das ändern möchte. Hier beschreibe ich euch kurz wie Ihr ein SSL-Zertifikat auf eurem Apache Webserver unter Debian Stretch oder Raspberry Stretch installieren könnt.

Installation

Der Certbot, ein Script zum installieren und aktualisieren von Let´s Encrypt SSL-Zertifikaten, bietet spezielle Installationsassistenten für verschiedene Webserver und Betriebssystem Kombinationen an. Den für uns benötigten finden wir in den offiziellen Debian Repositorys.

sudo apt-get install python-certbot-apache

Sobald danach gefragt wird bestätigen wir die Installation der benötigten Pakete. Der Installationsassistent ist anschließend in der Lage die richtigen Einstellungen und Informationen für den Certbot bereitzustellen. Da uns hierdurch die meiste Arbeit abgenommen wird ist der Rest nun ganz einfach.

sudo certbot --apache

Abschließend müssen wir dem Certbot noch ein paar Fragen beantworten. Sobald wir damit fertig sind wird automatisch das SSL-Zertifikat installiert. Dieses ist immer 90 Tage lang gültig.

Zertifikat automatisch verlängern

Damit wir das Zertifikat nicht alle 90 Tage manuell verlängern müssen, legen wir einen Cronjob an der uns diese Arbeit abnimmt. Dafür benötigen wir als erstes eine neue und leere Datei in die ein simples Script eingefügt wird.

touch /home/user/renew-certs.sh

Um diese neu angelegte Datei zu bearbeiten verwende ich in diesem Beispiel nano. Selbstverständlich könnt ihr auch einen anderen Editor verwenden.

nano /home/user/renew-certs.sh

Folgendes fügen wir ein:

#! /bin/bash
certbot renew -q

Das Script funktioniert nur wenn es ausführbar ist.

chmod +x /home/user/renew-certs.sh

Um die Cronjobs unseres aktuellen Users zu bearbeiten müssen wir folgendes eingeben:

crontab -e

Am Ende der Datei fügen wir dann die nachfolgende Zeile ein und speichern das ganze ab.

* 3 * * * /home/user/renew-certs.sh

Ab sofort wird nun jede Nacht um 3 Uhr das Script ausgeführt und überprüft ob eines unserer Zertifikate erneuert werden muss. Sollte das der Fall sein wird dies sofort gemacht und das Zertifikat ist erneut 90 Tage lang gültig.

Abschließende Worte

Gültige SSL-Zertifikate und eine Verschlüsselung der Kommunikation sind nicht nur zum Schutz der eigenen Kunden oder Besucher wichtig. Auch Google & Co legen inzwischen einen hohen Wert auf solche Dinge und diese wirken sich somit stark auf das SEO-Ranking aus. Da es mit Let´s Encrypt kostenlose SSL-Zertifikate gibt, gibt es keinen Grund mehr ungesicherte Verbindungen zu verwenden.

Von |2018-10-19T00:09:36+00:0024. August 2017|Alle, Beiträge, Server|1 Kommentar
Mehr Beiträge laden