Lese-Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.

Raspberry Pi: Umzug von SD-Karte auf SSD in wenigen Schritten

Von: Benni

Der Raspberry Pi hat sich in den letzten Jahren von einem kleinen Minicomputer für Bastler und Nerds zu einem vollwertigen und verhältnismäßig leistungsfähigem Rechner entwickelt. Nicht wenige Anwender freuen sich darüber, für wenig Geld einen vollwertigen Miniserver zu bekommen. 

Beim Einsatz des Raspberry Pi für den produktiven Einsatz als Server ist zu beachten, dass auch die angeschlossene Hardware hierfür geeignet sein sollte. Ein Gehäuse, bei dem er Pi überhitzt, ist genau so schädlich wie eine SD-Karte als Festplatte, da diese nicht für den Dauerbetrieb geeignet ist.

Durch den Einsatz rund um die Uhr gibt es sehr viele Schreib- und Lesevorgänge auf der SD-Karte. Hierfür sind diese Karten aber nur bedingt geeignet. Bei den ersten Raspberry Pi Generationen hatte ich sehr häufig Datenverlust, weil die SD-Karte den Geist aufgegeben hat. 

Inzwischen läuft auf dem Pi bei mir eine Instanz von Home Assistant. Hier werden rund um die Uhr Daten aufgezeichnet und Automationen ausgeführt. Auch andere Dienste laufen hier, von denen ich keinen Ausfall erleiden möchte. 

Außerdem sind die Lese- und Schreibgeschwindigkeiten einer SD-Karte sehr limitiert. Eine moderne SSD ist um ein Vielfaches schneller. Das wird vor allem dann deutlich, wenn man in Home Assistant Datenmengen abfragt, z.B. Diagramme anzeigt. Ladezeiten von mehreren Sekunden sind dann keine Seltenheit.

Die Konsequenz daraus ist, dass ich den Raspberry von einer SD-Karte auf eine SSD-Karte umziehen möchte. Dadurch, dass hier ein Produktivsystem läuft, möchte ich alle Installationen, Daten und Einstellungen möglichst verlustfrei auf das neue Medium umziehen. Wie ich das gemacht habe, erfahrt hier in folgendem Tutorial.

Schritt 0: Geschwindigkeit testen (optional)

Um einen Geschwindigkeitsvorteil in messbare Größen zu fassen, kann man als Referenz einen Geschwindigkeitstest der SD-Karte machen. Mit dem folgenden Befehl werden Beispieldateien geschrieben. Der Befehl gibt aus, wie schnell die Geschwindigkeit dabei war. 

$ dd if=/dev/zero of=/tmp/speedtest1.img bs=20MB count=5
5+0 records in
5+0 records out
100000000 bytes (100MB, 95 MiB) copied, 11.9403 s, 8.4 MB/s

Wenn der Umzug fertig ist, kann man diesen Test wiederholen. Bei mir kam ich von ca. 8,4 MB/s Schreibgeschwindigkeit auf 168 MB/s. Das hat sich mal gelohnt!

Schritt 1: SSD erstmals anschließen

In meinem Fall handelt es sich um eine externe SSD, die über USB 3.0 angeschlossen wird. Nachdem ich sie angesteckt habe, prüfe ich ob sie rechtmäßig erkannt wird, indem ich den folgenden Befehl eingebe und in der Ausgabe nach der SSD suche.

$ lsblk

Schritt 2: Installation von RPi-clone

Auf Github gibt es ein kleines Projekt, das viele Funktionen beinhaltet. Das Programm kopiert den Inhalt der SD-Karte auf die SSD, sodass von ihr gebootet werden kann und alle Einstellungen vorhanden sind.

$ git clone https://github.com/billw2/rpi-clone.git
$ cd rpi-clone
$ sudo cp rpi-clone /usr/local/sbin/sys-clone
$ sudo cp rpi-clone-setup /usr/local/sbin/sys-clone-setup

Schritt 3: Services stoppen und Kopiervorgang starten

Am besten ist es, wenn kein Service mehr läuft und der Kopiervorgang ungestört durchlaufen kann. Daher erst prüfen, was alles läuft, danach einzeln beenden

$ sudo systemctl stop cron
$ sudo systemctl stop nginx
$ sudo systemctl stop docker usw.

Schritt 4: Kopiervorgang starten

Aus dem Check von Schritt 1 kennen wir bereits die Bezeichnung der Festplatte. Auf diese müssen wir nun verweisen mit dem Befehl:

$ rpi-clone sda

Der Wizard hält zunächst an und berichtet uns über den Zustand des Systems. Wenn alles korrekt ist, kann der Vorgang mit der Eingabe von „yes“ gestartet werden.

Schritt 5: Raspberry Pi herunterfahren und von SSD booten

Nach Ende des Kopiervorgangs fährt man den Raspberry Pi herunter.

$ sudo shutdown now

Anschließend von der Stromversorgung trennen, die SD-Karte entfernen, und die Spannungsversorgung wieder herstellen. Jetzt bootet der Raspberry von SSD und ist sehr viel schneller.

The post Raspberry Pi: Umzug von SD-Karte auf SSD in wenigen Schritten first appeared on bejonet - Linux | Smart Home | Technik.

MQTT-Broker Mosquitto als Docker Container installieren

Von: Benni

Ein MQTT-Broker ist die Schnittstelle zwischen vielen IoT-Sensoren und Geräten, die Sensordaten auswerten oder Aktoren steuern. Das MQTT-Protokoll ist offen und sehr weit verbreitet. Es findet in der Industrie Anwendungen, ist aber auch in Smart Homes ist MQTT weit verbreitet.
MQTT ist ein sehr schlankes und schnelles Protokoll. Es wird in Anwendungen mit niedriger Bandbreite gerne angewendet.

MQTT funktioniert, grob gesagt, folgendermaßen: IoT-Geräte können Nachrichten versenden, die von anderen IoT-Geräten empfangen werden. Die Vermittlungsstelle ist ein sogenannter MQTT-Broker. Dieser empfängt die Nachrichten von den Clients. Gleichzeitig können diese Nachrichten von anderen Clients abonniert werden. Die Nachrichten werden in sog. Topics eingestuft, die hierarchisch angeordnet sind, z.B. Wohnzimmer/Klima/Luftfeuchtigkeit.

Home Assistant, oder ein anderer Client, kann diesen Topic abonnieren und den Nachrichteninhalt („Payload„) auswerten (z.B. 65%).

Home Assistant OS vs. Home Assistant Container

In Home Assistant OS und Supervisor gibt es ein Addon, das einen MQTT-Broker installiert. Das ist sehr einfach, komfortabel und funktioniert wohl recht zurverlässig. In den Installationsarten Home Assistant Container und Core gibt es diese Möglichkeit nicht. Hier muss man manuell einen MQTT-Broker aufsetzen.

In diesem Artikel beschäftige ich mich damit, wie man den MQTT-Brocker Mosquitto über Docker installiert. Anschließend zeige ich, wie man die Konfigurationsdatei gestaltet und eine Verbindung zu Home Assistant herstellt. Das Ergebnis ist dann ungefähr so, als hätte man das Addon installiert. Los gehts!

Schritt für Schritt: MQTT-Broker Mosquitto mit Docker installieren

Als MQTT-Broker verwende ich die weit verbreitete Software Mosquitto von Eclipse. Dieser wird auch von Home Assistant bevorzugt und ist derjenige Broker, den das Addon installieren würde.
Für diese Anleitung wird vorausgesetzt, dass Docker bereits installiert ist und eine SSH-Verbindung zum Server hergestellt werden kann.

Schritt 1: Zunächst erstellen wir ein paar Ordner, die wir später benötigen. Mosquitto wird später so konfiguriert, dass in diese Ordner alle wichtigen Dateien abgelegt werden. Dadurch kann man auf dem Filesystem des Servers Mosquitto konfigurieren und beobachten.

$ mkdir mosquitto
$ mkdir mosquitto/config 
$ mkdir mosquitto/data 
$ mkdir mosquitto/log

Schritt 2: Nun wird die Konfigurationsdatei für Mosquitto erstellt. Über diese Datei kann man das Verhalten von Mosquitto steuern.

$ nano config/mosquitto.conf
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
password_file /mosquitto/config/mosquitto.passwd
allow_anonymous false
listener 1883

Schritt 3: Mit dem folgenden Befehl lädt man sich das aktuelle Image von Eclipse Mosquitto auf den Server.

$ docker pull eclipse-mosquitto

Schritt 4: Mit dem folgenden Befehl wird der Docker-Container gestartet. Das ist der Schlüsselmoment, jetzt muss alles klappen.

$ docker run -it -p 1883:1883 -p 9001:9001 --name mosquitto -v /home/pi/mosquitto/config:/mosquitto/config -v /home/pi/mosquitto/data:/mosquitto/data -v /home/pi/mosquitto/log:/mosquitto/log eclipse-mosquitt

Die Flags bedeuten hierbei folgendes:

  • -p 1883:1883 Der genannte Port ist die Standardeinstellung für MQTT. Alles was auf diesen Port am Server ankommt, wird in den Mosquitto-Container geleitet.
  • -p 9001:9001 Über diesen Port laufen die Websocket-Anwendungen. Falls das nicht benötigt wird, kann man das weg lassen
  • name mosquitto Über diesen kurzen Namen können wir den Docker-Container steuern
  • -v <filesystem-Pfad>:<Container-Pfad> Die in Schritt 1 erstellten Ordner werden in den Container eingebunden

Wer lieber Docker Compose verwendet, trägt diesen Eintrag in seine *.yaml ein:

services:
    eclipse-mosquitto:
        stdin_open: true
        tty: true
        ports:
            - 1883:1883
            - 9001:9001
        restart: unless-stopped
        container_name: mosquitto
        volumes:
            - /home/pi/mosquitto/config:/mosquitto/config
            - /home/pi/mosquitto/data:/mosquitto/data
            - /home/pi/mosquitto/log:/mosquitto/log
        image: eclipse-mosquitto

Schritt 5: Checken, ob der Container ordnungsgemäß läuft. In der folgenden Liste sollte eine Zeile mit dem Mosquitto-Docker auftauchen. Dieser sollte außerdem „up“ sein. Falls nicht, nochmal versuchen den Container zu starten und kontrollieren, ob er läuft.

$ docker container ls -a
CONTAINER ID   IMAGE          COMMAND   CREATED        STATUS        PORTS    NAMES
xxxxxxxxx   eclipse-mosquitto "/init"   3 minutes ago   Up 2 minutes  [...]   mosquitto

Schritt 6: Sehr gut, der Container läuft. Es wird dringend empfohlen, den MQTT-Broker so abzusichern, dass nur angemeldete User darauf zugreifen können. Das ist ja schon in Schritt 2 in die Konfigurationsdatei geschrieben worden. Mit dem folgenden Befehl melden wir uns in der Shell innerhalb des Containers an und erstellen einen Benutzer. In diesem Beispiel mosquitto. Im Anschluss an diesen Befehl wird man zweimal gebeten, das Passwort für den User festzulegen. Ist das geschafft, läuft der MQTT-Broker auf dem Server. Herzlichen Glückwunsch!

$ docker exec -it sh // öffnet die Shell innerhalb des Dockers
mosquitto_passwd -c /mosquitto/config/mosquitto.passwd mosquitto

Optional Schritt 7: Den MQTT-Broker bindet man in Home Assistant ein, indem man auf EinstellungenGeräte und Dienste+ Integration hinzufügen klickt. Im Suchfenster nach „MQTT“ suchen und die Zugangsdaten eingeben.
Die Server-Adresse findet man übrigens am schnellsten über ifconfig heraus.

The post MQTT-Broker Mosquitto als Docker Container installieren first appeared on bejonet - Linux | Smart Home | Technik.

Home Assistant: Digitalen Stromzähler mit ESPHome auslesen

Von: Benni

Für unser Smart Home möchten wir den aktuellen Stromverbrauch aufzeichnen. Dafür bietet sich, wie auch in meinem Artikel über die Digitalisierung des Gaszählers, Home Assistant an. In dieser mächtigen Software lassen sich Automatisierungen für das Haus erstellen, aber auch Sensoren einlesen und protokollieren. Das möchten wir mit unserem digitalen Stromzähler machen. Was wir zusätzlich noch benötigen, ist ein ESP8266, sozusagen die Home Assistant Außenstelle, die die Daten an die Zentrale weitergibt. Also, legen wir los!

Hardware: ESP8266 und TCRT5000 zum Auslesen des Stromzählers

Die Hardware lässt sich sehr günstig im Internet erwerben. Zwingend erforderlich sind folgende Bauteile:

  • ESP8266 oder ESP32, ich verwende gerne den Wemos D1 Mini
  • TCRT5000, ein Infrarotdiode zum Auslesen des Gaszählers
  • Litzen oder Jumperkabel

Nicht zwingend erforderlich, aber für den dauerhaften Einsatz gut geeignet sind folgende Bauteile

  • Lochrasterplatine
  • Schraubbare Pins um die Kabel zum TCRT5000 mit dem Wemos zu verbinden
  • Female Pins zum Auflösten auf eine Lochrasterplatine und zum Stecken auf die Pins

Den TCRT5000 muss man vorher noch präparieren. Man erkennt ja, dass dort zwei Dioden verbaut sind, eine helle und eine dunkle. Die hellere sendet ein IR-Licht aus, das die zweite Diode wieder lesen soll. Das kann beispielsweise für eine Lichtschranke verwendet werden. In unserem Fall stört die helle Diode, daher müssen wir sie entfernen. Entweder löten wir die ganze Diode aus, oder wir entfernen den Vorwiderstand. Zweiteres geht deutlich schneller. Dazu einfach den Lötkolben an den SMD-Widerstand halten, dann kann man ihn etwas verschieben.

TCRT5000 Bauteile erklärt: Die Output-LED wird wichtig, wenn man die Empfindlichkeit des Sensors mit dem Potentiometer einstellt

Die Verdrahtung findet nach folgendem Schaltplan statt. Wir verwenden keinen Pullup-Widerstand, da dieser bereits auf dem TCRT5000 vorhanden ist. Es wird die Spannungsversorgung über VCC und GND hergestellt und der D0-Pin des TRCT5000 wird mit D2 (GPIO4) des Wemos D1 Minis verbunden.

Schaltplan um den ESP8266 Wemos D1 Mini mit dem TCRT5000 zu verbinden.

Installation am Stromzähler

Die digitalen Stromzähler, hier im Beispiel von EMH, haben fast immer eine Schnittstelle für den Kunden. Manchmal muss man sie von seinem Netzbetreiber freischalten lassen. In meinem Fall war sie glücklicherweise ohne Freischaltung verfügbar.

In der Regel ist dort eine blinkende LED verbaut. Das Blinklicht ist allerdings im Infrarotbereich, für das menschliche Auge also nicht sichtbar. Mit manchen Handy- oder Digitalkameras kann man es aber sichtbar machen, wenn deren Sensoren noch keinen IR-Filter verbaut haben.

Ich habe mir also aus etwas Schaumstoff und Klebeband einen kleinen Halter gebaut. Den Lesekopf des TCRT5000 habe ich dann unmittelbar vor der blinkenden Diode des Stromzählers platziert. Das Potentiometer des TCRT5000 habe ich mit einem kleinen Schraubendreher so lange verdreht, bis die Output-LED gleichmäßig geblinkt hat.

Am Stromzähler sieht man oben eine LED als Kundenschnittstelle. Darüber wird die lesende Diode des TCRT5000 positioniert. Am Poti wird dann so lange die Empfindlichkeit verstellt, bis die Output-LED des TCRT5000 regelmäßig blinkt.

ESPHome installieren und Home Assistant konfigurieren

Die ausführliche Beschreibung, wie man ESPHome auf den Microcontroller bekommt, habe ich bereits beim Gaszähler beschrieben. Die Konfigurationsdatei für den ESP8266 sieht dann im zweiten Abschnitt, also nach dem „captive_portal“ folgendermaßen aus. Beim Gaszähler habe ich den binary_sensor verwendet. Aus Gründen, die ich nicht verstehe, funktioniert das Setup hier aber nicht. Darum verwende ich nun den Pulse_meter, der wiederum am Gaszähler nicht funktioniert.

# Voher kommt der ganze Kopf der Datei, was der Wizard generiert
# [...]

sensor:

# Stromzähler als Pulse Meter
  - platform: pulse_meter
    name: "Stromverbrauch"
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
    unit_of_measurement: "kW"
    accuracy_decimals: 3
    timeout: 2 min
    filters:
      # Filter outliers
      - median:
          window_size: 3
          send_every: 1
          send_first_at: 1
      # Convert pulses/min to kW bei 10000Imp/kWh
      - multiply: 0.006
    total:
      name: "Stromzähler"
      unit_of_measurement: "kWh"
      accuracy_decimals: 3
      filters:
        - multiply: 0.0001

Diesen Code flasht man auf den ESP8266. Gegebenenfalls müssen die Konstanten verändert werden. Das hängt vom Stromzähler ab, wie viele Impulse er ausgibt und in welcher Einheit das umgerechnet werden kann. Der Pulse-Counter hat als Rohsignal „Impulse pro Minute“, bringt bei mir also die Einheit „kWh/min“.

Nebenrechnung: Ich habe einen Verbraucher, der 1.000 Watt = 1 kW verbraucht. Wenn der Verbraucher eine Stunde läuft, verbrauche ich 1 kWh Energie. Der Stromzähler blinkt also 10.000 mal innerhalb dieser Stunde bzw. 166,6 mal pro Minute (siehe Aufdruck). Also muss ich die Pulse/min mit 60/10.000 multiplizieren, also mit 0,006 um wieder auf 1 kW zu kommen. Daher kommt die Konstante in meinem Beispiel.

Im Home Assistant braucht man ebenfalls eine neue Konfiguration. Man bearbeitet dort die configuration.yaml oder, noch besser, die sensor.yaml und ergänzt dort folgende Zeilen:

- platform: template
  sensors:
    stromverbrauch_in_kwh:
      friendly_name: "Elektrische Energie in kWh"
      value_template: >
          {% if states('sensor.stromzahler') | float == 0 %}
           {{ states('sensor.stromverbrauch_in_kwh') }}
          {% else %}
           {{ states('sensor.stromzahler') | float }}
          {% endif %}
      unit_of_measurement: kWh
      device_class: energy
      attribute_templates:
        state_class: total_increasing

Damit haben wir sozusagen offiziell einen Stromzähler implementiert. Dieser kann wiederum im Energie-Dashboard angezeigt werden.

Eines Morgens habe ich mal ein paar Geräte nacheinander angesteckt und deren Stromverbrauch angesehen.

Stromverbrauch in Home Assistant: verschiedene Elektrogeräte im Haushalt im Vergleich: Wasserkocher, Kaffeemaschine, Handyladen und PC starten

The post Home Assistant: Digitalen Stromzähler mit ESPHome auslesen first appeared on bejonet - Linux | Smart Home | Technik.

ESPHome: Temperaturmessung mit DS18B20 für Home Assistant

Von: Benni

Wenn man sich ein Smart Home aufbaut, möchte man aus verschiedenen Gründen Temperaturen messen. In meinem Fall möchte ich im Heizungsraum die Temperaturen an den Wasserrohren, sowie im Warmwasserspeicher aufzeichnen. Eine einfache und kostengünstige Lösung ist es, das mit einem ESP8266 und dem DS18B20 Temperatursensor umzusetzen. Mit der Software ESPHome ist das auch schnell eingerichtet. Im Folgenden zeige ich, wie man das macht.

ESP8266 und DS18B20 verdrahten

Für dieses Beispiel verwende ich einen ESP8266 Wemos D1 Mini mit drei DS18B20 Temperatursensoren. Sie werden nach folgendem Schema verdrahtet. Das einzige zusätzliche Bauteil ist ein 4,7 kOhm Widerstand, der zwischen den Signal-Pin und VCC gelötet wird.

  • ESP8266 mit DS18B20 Temperatursensoren verbinden. Dazu ist ein 4k7 Ohm Widerstand notwendig.
  • Die Umsetzung der Schaltung könnte zum Beispiel so aussehen. Verwendet wurde eine Lochrasterplatine. Der Kondensator zwischen VCC und GND ist optional (nicht im Schema eingezeichnet)

Der Vorteil von den DS18B20 ist, dass man sehr viele von ihnen parallel betreiben kann. Wenn die Schaltung einmal geschafft ist, kann man weitere Sensoren einfach anschließen. Das ist der Grund, warum ich schraubbare Kontaktklemmen verwendet habe: Dadurch kann ich mit wenig Aufwand neue Sensoren anschließen.

DS18B20: Adresse herausfinden

Dieser Temperatursensor arbeitet mit dem 1-Wire-Protokoll. Um jeden Sensor eindeutig ansprechen zu können, ist die Adresse des Sensors notwendig. Die kann man leider nicht am Gehäuse ablesen, sondern man muss sie via Software erfragen. Wir nutzen das gleich, um unsere Verdrahtung zu überprüfen!

Die Adresse der Sensoren findet man ebenfalls mit ESPHome heraus, indem man ein sehr minimalistisches Programm aufspielt. Wie schon beim Auslesen des Gaszählers startet man mit

esphome wizard heizungstemperatur.yaml

und beantwortet dem Wizard wahrheitsgemäß die 4 Fragen. Die entstandene heizungstemperatur.yaml öffnet man mit einem Editor und fügt unten die folgenden Zeilen hinzu:

# Example configuration entry
dallas:
  - pin: GPIO2

Mittels des folgenden Befehls kompiliert man die Datei und flasht sie auf den ESP8266 (siehe Artikel über den Gaszähler).

esphome run heizungstemperatur.yaml

Der folgende Befehl öffnet die Logdatei des Controllers:

esphome logs heizungstemperatur.yaml

Dort werden die Adressen der angeschlossenen Sensoren angezeigt. Kleiner Tipp: Wenn man immer nur einen Sensor anschließt, behält man den Überblick!

In der Logdatei sieht man (in der letzten Zeile) die Adresse des Sensors. Diesen notiert man sich.

ESPHome für Temperaturmessung flashen

Wenn man nun alle Adressen der Sensoren herausgefunden und notiert hat, kann man das den ESP8266 wie folgt konfigurieren. Den Code fügt man an die bereits erzeugte Datei aus dem Wizard an.

dallas:
  - pin: GPIO2

sensor:
  - platform: dallas
    address: 0x773c01f096c1ee28
    name: "Heizung Vorlauf Temperatur"
  - platform: dallas
    address: 0x783c01f096729728
    name: "Heizung Rücklauf Temperatur"
  - platform: dallas
    address: 0x883c01f096ade428
    name: "Warmwasserspeicher oben Temperatur"

Da mittlerweile der Chip schon die ESPHome-Software aufgespielt hat, kann man bereits jetzt kabellos den neuen Programmcode übertragen. Bei ESPHome nennt sich diese Technik „Over the air“, kurz OTA. Der PC und der ESP8266-Chip müssen sich nur im gleichen Netzwerk befinden.

esphome run heizungstemperatur.yaml

Integration der Temperatursensoren in Home Assistant

Jetzt fehlt nur noch die Integration in den Home Assistant. Glücklicherweise arbeiten die beiden Systeme sehr gut miteinander. Man navigiert im Home Assistant auf Einstellungen, Geräte& Dienste und fügt über das Plus unten rechts eine neue Integration hinzu. Dort sucht man nach „ESPHome“ und gibt im folgenden Fenster die IP-Adresse ein. Wichtig: hierfür muss die API aktiviert sein (das ist eine der Fragen des esphome-Wizards).

Weitere Informationen: https://esphome.io/components/sensor/dallas.html

The post ESPHome: Temperaturmessung mit DS18B20 für Home Assistant first appeared on bejonet - Linux | Smart Home | Technik.

Home Assistant: Gaszähler mit ESPHome auslesen, flashen unter WSL

Von: Benni

Zu einem Smart Home gehört es fast selbstverständlich, dass der Verbrauch von Energie aufgezeichnet wird. Der Stromzähler ist eine der wesentlichen Energiezählern im Haushalt, auch der Gaszähler ist sehr wichtig. Vor allem in Haushalten, in denen der primäre Energieträger Erdgas ist, ist der Gasverbrauch essenziell und wird im Smart Home auch optimiert. Das ist, zumindest für meine Begriffe, eine der wesentlichen Aufgaben des Smart Homes.

Das Schöne an den Gaszähler ist es, dass sie sich in der Regel sehr einfach auslesen lassen. Es ist keine komplizierten und teuren Geräte dafür notwendig. Bei den meisten Gaszählern reicht nämlich ein einfacher Reed-Kontakt aus, die es für einige Cent bei Ebay oder anderen Shops zu kaufen gibt. Als Intelligenz wird der sehr vielseitige ESP8266 verwendet. Dieser ist sehr energiesparend, hat integriertes WLAN, lässt sich verhältnismäßig einfach einrichten und kostet ebenfalls nur sehr wenig Geld.

Wenn der Gaszähler eine Aufschrift wie „1 im = 0,01m³“ trägt, lässt er sich mit wenig Aufwand digitalisieren. Ein Reed-Schalter könnte bereits genügen, um den Gaszähler ins Smart Home einzubinden.

Hardware: ESP8266 und Reed-Kontakt verlöten

Die Einkaufsliste für diesen Sensor:

  • ESP8266, beispielsweise den Wemos D1 Mini
  • Reed-Kontakt
  • optional: 5V Netzteil
  • optional: Schrumpfschlauchsortiment

Für einen geübten Maker ist diese Aufgabe im Handumdrehen erledigt. Für nicht geübte Maker ist es das perfekte Einsteigerprojekt. Es sind nur sehr wenige Lötstellen zu setzen und man kann kaum etwas falsch machen. Beim ESP8266, in meinem Fall ein Wemos D1 mini, müssen nur die beiden Pinleisten angelötet werden. Für Minimalisten würde sogar je ein Pin bei G (Ground) und D1 (GPIO5) reichen. An diese Pins gehören jeweils die Kabel, idealerweise Litzen 0,15mm², an deren Ende der Reed-Kontakt gehört. Bei diesem Schalter muss man keine Richtung beachten, man kann ich nicht falsch herum anlöten. Das fertige Produkt sieht dann so aus. Ich habe noch versucht, die Lötstellen mit Schrumpfschlauch zu verschönern. Das ist optional.

Update (02.05.2022)  Weiterhin habe ich eine optionale LED zur Visualisierung des Signals eingebracht. Diese blinkt immer dann, wenn der Reed-Kontakt schaltet. Das ist vor allem dann sehr nützlich, wenn man den Reed-Schalter am Gaszähler anbringt. Die LED ist eine Hilfe, sie ist aber nicht zwingend nötig. Ihren Vorwiderstand kann man über Online-Tools berechnen, bei mir waren es 220 Ohm.

Der Schaltplan mit optionaler LED
ESP8266 an der Pinleiste mit einem Reed-Schalter verlötet. Der Reed-Schalter geht auf Pin G und Pin D1

ESPHome auf ESP8266 installieren unter Windows 10

Unter Windows 10 lässt sich über den „Microsoft Store“ Ubuntu installieren. Das ist der kleine Umweg, den ich häufig gehe, um ein fast vollständiges Linux unter Windows 10 zum laufen zu bringen. Dass es leider nicht vollständig ist, sieht man den nun folgenden, etwas umständlichen Herangehensweise, wie man ESPHome auf dem ESP8266 installiert.

Wer ein vollständiges hass.io bzw. Home Assistant hat, kann das übrigens über den Addon-Store mit dem Add-on „ESPHome“ deutlich beschleunigen. Da ich aber, wie bereits beschrieben, Home Assistant als Container laufen habe, ist für mich der Umweg notwendig.

Man startet Ubuntu unter Windows und gelangt in das Terminal. Dort installiert man sich (falls noch nicht geschehen) Python 3 und das nötige Paket „esphome“ aus dem Python-Repsitory. Anschließend prüft man, ob die Installation geklappt hat, indem man sich die Versionsnummer ausgeben lässt.

$ sudo apt-get install python3 python3-pip
$ pip install --user esphome
$ esphome version 

Der Einfachheit halber empfehle ich, den Wizard von ESPHome zu verwenden. Er wird benutzt, um die *.yaml zu erstellen. Genau wie bei Home Assistant ist sie dafür da, den Controller zu konfigurieren. Der Wizard zeigt einem glücklicherweise gleich alle möglichen Alternativen auf, die man eingeben kann. Beantwortet also wahrheitsgemäß die 4 Fragen den Wizards und wir erhalten eine Konfigurationsdatei mit dem angegebenen Namen. Ich habe hier willkürlich gaszaehler.yaml gewählt.

$ esphome wizard gaszaehler.yaml
$ nano gaszaehler.yaml

Die nun folgende Datei sieht dann beispielsweise so aus:

esphome:
  name: gaszaehler

esp8266:
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "1234"

ota:
  password: "1234"

wifi:
  ssid: "hier die Wifi-SSID eintragen"
  password: "hier das Wifi Passwort eintragen"
  manual_ip:
    static_ip: "auf Wunsch"
    gateway: "IP-Adresse des Gateways"
    subnet: "Subnet Maske"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Gaszaehler Fallback Hotspot"
    password: "hier steht automatisch ein Passwort"

captive_portal:

Das Fallback-Wifi wird gebraucht, falls der Sensor das eigentliche WLAN nicht erreichen kann. Dann baut der ESP8266 eigenständig ein WLAN auf, über das er sich konfigurieren lässt.

Update (02.05.2022)  Vor diesem Update habe ich den Pulse_counter von ESPHome verwendet. Dieser liefert leider keine zuverlässigen Werte. Gleiches gilt für den pulse_meter, der eigentlich besser sein sollte. Stattdessen bin ich nach einiger Tüftelei wieder bei dem binary_sensor herausgekommen, der wunderbar funktioniert. Zusätzlich ist eine LED auf GPIO0 angebracht, die schaltet, sobald der Reed-Schalter zieht. Damit könnt ihr live am Gerät sehen, ob ein Puls anliegt. Sie ist nur eine Hilfe und nicht zwingend erforderlich.

globals:
  - id: total_pulses
    type: int
    restore_value: false
    initial_value: '0'  # hier kann der Gaszählerstand initialisiert werden

binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO5
      mode: INPUT_PULLUP
    name: "Live-Impuls"
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: id(total_pulses) += 1;
        - output.turn_off: led  # optional: für eine LED, die den Gaszählerpuls visualisiert
    on_release:
      then:
        - output.turn_on: led  # optional: für eine LED, die den Gaszählerpuls visualisiert

sensor:
  - platform: template
    name: "Gasverbrauch"
    device_class: gas
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    lambda: |-
      return id(total_pulses) * 0.01;

# Optional: Diese LED soll blinken, sobald ein Signal vom Gaszähler erkannt wird
output:
  - platform: gpio
    pin: GPIO0
    id: 'led'

Fertig mit der Konfiguration. Wir speichern mit Strg + O und schließen Nano mit Strg + X

Mit dem folgenden Befehl wird der Code für den ESP8266 kompiliert. Ich habe es leider nicht geschafft, ihn direkt per USB-Kabel auf meinen Controller zu bekommen. Daher bin ich einen Umweg gegangen.

$ esphome run gaszaehler.yaml

Das endet mit einer Fehlermeldung (connection failed bad indicator errno=11), dass der Code nicht auf den Controller gebracht werden konnte. Stattdessen kopieren wir den Code auf das Laufwerk C: unter Windows und arbeiten von dort aus weiter (sorry Leute!!).

$ cp ~/esphome/.esphome/build/gaszaehler/.pioenvs/gaszaehler/firmware.bin /mnt/c/Users/<Benutzername>

Mittels ESPHome-Flasher, den es auch für Windows gibt und der nicht installiert werden muss (!!) geht es weiter. Die eben kopierte Datei auswählen, den ESP8266 mit USB am PC anstöpseln und den entsprechenden COM-Port auswählen (bei mir wurde nur einer angezeigt). Bestätigen, und warten bis es fertig ist.

ESPHome in Home Assistant installieren

Mit der Entität „ESPHome“ kann der Sensor in den Home Assistant eingebunden werden. Das geht sehr fix, es muss nur die IP-Adresse und das festgelegte Passwort eingegeben werden. Damit er auch korrekt als Energiequelle erkannt wird, muss man noch folgende Zeilen in die configuration.yaml anfügen, besser noch, in die sensor.yaml

Update (15.04.2022): Manchmal fällt der ESP kurzzeitig aus, was den Gasverbrauch kurzfristig auf 0 m³ setzt. Sobald er wieder da ist, gibt es einen unlogischen Peak in der Statistik. Dieser wird über die kleine IF-Schleife herausgefiltert.

- platform: template
  sensors:
# Gaszähler, kommend von ESPHome, aufbereiten für Energy
    gasincubicmeter:
      value_template:  >
          {% if states('sensor.gasverbrauch') | float == 0 %}
           {{ states('sensor.gasincubicmeter') }}
          {% else %}
           {{ states('sensor.gasverbrauch') | float }}
          {% endif %}
      unit_of_measurement: m³
      device_class: gas
      attribute_templates:
        state_class: total_increasing

Nach einem Neustart des Servers klickt man im Home Assistant auf „Einstellungen“, „Energie“ und klickt auf den Gaszähler. Dort taucht nun die neue Entität gasincubicmeter auf und kann ausgewählt werden.

In Home Assistant kann über Einstellungen → Energie eine neue Gasquelle hinzugefügt werden
Der Gasverbrauch wird auf dem Energie-Dashboard von Home Assistant angezeigt

Reed-Schalter am Gaszähler positionieren

Wer Zugriff auf einen 3D-Drucker hat, sollte sich bei Thingiverse mal umsehen, ob dort ein Halter für seinen Gaszähler vorhanden ist. Die Chance dort, oder woanders, einen zu finden, halte ich für sehr hoch. Andernfalls kann man mit etwas Geschick und gutem Klebeband den Schalter direkt am Gaszähler montieren. Er muss in der vorgesehenen Kerbe möglichst genau unter der letzten Ziffer positioniert werden. Wer darauf achtet, wird bemerken, dass die letzte drehende Ziffer einen kleinen Magneten hat. Genau darunter muss der Reed-Schalter geklebt werden.

The post Home Assistant: Gaszähler mit ESPHome auslesen, flashen unter WSL first appeared on bejonet - Linux | Smart Home | Technik.

Home Assistant: Animiertes Regenradar einfügen

Von: Benni

Zu einem guten Smart Home gehört natürlich auch eine schöne „Kommandozentrale“. Obwohl das Haus ja schlau ist und alles selbst entscheiden soll, möchte man ja dennoch wissen, was gerade los ist. Der Home Assistant, eine freie und open source Software für Hausautomatisierung, bietet mit seinen Dashboards genau solche Übersichten an. Mit wenigen Klicks lassen sich die Messdaten aus dem Haus und um das Haus visualisieren.

Einen Regenradar in Home Assistant kann man einbinden, wenn man die Bild-URL als Kachel im Dashboard hinzufügt.

Regenradar und weitere Wetterdaten

Das Wetter spielt natürlich eine entscheidende Rolle für das Haus und die Bewohner. Die erste Anlaufstelle für aktuelle Wetterdaten und Vorhersagen könnte beispielsweise OpenWeatherMap sein. Die API ist gut dokumentiert, die Einbindung in den Home Assistant ist reibungslos, der Dienst ist kostenlos und es fällt keine Werbung an. Einzig eine Registrierung auf der Webseite ist nötig, um den verpflichtenden API-Schlüssel zu erhalten.

Was leider fehlt, ist der Regenradar. Jede Vorhersage ist ja nur so gut, wie die, die man mit eigenen Augen sieht. Darum lohnt es sich, einen Regenradar in das Home Assistant Dashboard einzubinden.

Die meisten Regenradare lassen sich nicht besonders einfach einbinden. Und falls doch, sind sie meistens mit Werbung übersät. Um so schöner ist es, dass die Webseite morgenwirdes.de den Regenradar vom Deutschen Wetterdienst (DWD) aufbereitet und uns als animierte gif-Datei zur Verfügung stellt. Die Einbindung in den Home Assistant ist explizit erlaubt und funktioniert folgendermaßen.

Einbindung in den Home Assistant

Zunächst bastelt man sich die URL zusammen, die man für sein Dashboard braucht. Das geht relativ einfach, wenn man sich die Struktur der URL ansieht.

https://morgenwirdes.de/api/v3/gif4.php?plz=12345&delay=70&type=1&zoomlvl=1&bar=0&map=1&textcol=ffffff&bgcol=03a9f4

Die Flagge „plz“ gibt die Postleitzahl vor. Delay ist die Zeit in Millisekunden, die pro Zeitstufe angezeigt wird. Es gibt zwei Farbschemen der Karte, typ=0 oder 1. Der Zoomlvl gibt den Zoomlevel an (hier 1 für ganz Deutschland). Eine Zeitleiste (bar) und Hintergrundkarte (map) können optional eingeblendet werden. Farblich anpassen kann man die Karte mit den beiden letzten Flaggen.

In der configuration.yaml habe ich das dann als Kamera eingebunden. Das hat den Vorteil, dass die Daten immer aktualisiert werden. Würde man es als Bild einbinden, könnte es sein, dass der Regenradar nur aus dem Cache geladen wird und deshalb nicht aktuell ist.

##### Kameras und Wetterkarten
camera:
  - platform: generic
    still_image_url: 
https://morgenwirdes.de/api/v3/gif4.php?plz=12345&delay=70&type=1&zoomlvl=1&bar=0&map=1&textcol=ffffff&bgcol=03a9f4
    name: regenradar

In Lovelace, dem Dashboard von Home Assistant, fügt man nun ein Picture-Glance hinzu, schon ist das Radar da:

type: picture-glance
title: Regenradar
entities: []
camera_image: camera.regenradar

Update 15.04.2022:

Ich habe den Artikel angepasst, das Bild wird nicht mehr als normales Bild, sondern als Kamera eingebunden. Dadurch wird das Radar zuverlässiger aktualisiert.

The post Home Assistant: Animiertes Regenradar einfügen first appeared on bejonet - Linux | Smart Home | Technik.

Homematic IP: Wochenprogramm via Home Assistant wechseln

Von: Benni

Mit den Heizthermostaten von Homematic IP lassen sich die Heizkörper minutengenau zeitsteuern. In der Zentrale, in meinem Falle die Homematic CCU3, lassen sich Zeitprofile für jedes Heizthermostat hinterlegen. Die ganze Woche lässt sich damit detailliert planen. Es ist offensichtlich, dass nicht jede Woche eine Kopie der vorherigen Woche ist. Manchmal arbeitet man die ganze Woche von Zuhause aus, manchmal ist man im Urlaub. Damit ergibt sich auch, dass die Räume anders geheizt werden müssen.

Die Homematic CCU3 ermöglicht es, bis zu drei verschiedene Wochenprogramme anzulegen. Die Frage ist nun, wie kann man komfortabel zwischen diesen Wochenprogrammen wechseln? Diesem Thema widme ich diesen Artikel.

nn man über das WebUI jedem Thermostat ein detailliertes Wochenprogramm hinterlegen. Bis zu drei verschiedene Wochenprogramme können vorkonfiguriert werden.
In der Homematic CCU3 kann man über das WebUI jedem Thermostat ein detailliertes Wochenprogramm hinterlegen. Bis zu drei verschiedene Wochenprogramme können vorkonfiguriert werden.

Automatisierung ftw!

Der Grundgedanke eines Smart Homes ist natürlich, dass es „smart“ ist, also eigenständig Entscheidungen trifft. In meinem konkreten Fall könnte das bedeuten, dass meine Heizungssteuerung automatisch erkennt, wann mein Wochenprogramm sich ändern müsste. Mit entsprechenden Bewegungsmeldern ist das sicherlich möglich, wenn auch relativ aufwendig und kostspielig.

Ich habe mich dafür entschieden, eine übergeordnete Steuerung zu verwenden, den Home Assistant. Die Homematic CCU3 tritt dort nur als Client auf. Das ist insofern eine ganz gute Idee, als dass sich Home Assistant über eine App steuern lässt. Das ist komfortabel und zukunftssicher, dank einer engagierten Community im Hintergrund.

Einbindung von Homematic CCU3 in Home Assistant

Der Home Assistant und die Homematic CCU3 lassen sich glücklicherweise sehr einfach miteinander verbinden. Einzig ein Eintrag in der configuration.yaml von Home Assistant ist notwendig. Im Beispielcode sind die Passwörter in eine secrets-Datei ausgelagert.

# Homematic
homematic:
  interfaces:
    ip:
      host: 192.168.1.123
      port: 2010
      resolvenames: json
      username: !secret homematic_user
      password: !secret homematic_pw
    groups:
      host: 192.168.1.123
      port: 9292
      resolvenames: json
      username: !secret homematic_user
      password: !secret homematic_pw
      path: /groups
  hosts:
    ccu3:
      host: 192.168.1.123
      username: !secret homematic_user
      password: !secret homematic_pw

Damit man das Wochenprogramm umschalten kann, braucht es einen Service, den wir folgendermaßen zusammensetzen.

  1. Man erstellt auf einem Dashboard einen neuen Button.
  2. Bei den Einstellungen des Buttons wechselt man in die Code-Ansicht und gibt dort folgendes ein.

Address ist die Serialnummer des Gerätes, Value ist das Wochenprofil.

type: button
tap_action:
  action: call-service
  service: homematic.set_device_value
  service_data:
    address: 000a1d8991xxxx
    channel: 1
    param: ACTIVE_PROFILE
    value: '2'
    value_type: int
  target: {}
entity: climate.000a1d8991xxxx
icon: mdi:bed-outline
name: Kein Besucher im Gästezimmer

Um das Wochenprofil auf einen anderen Wert zu stellen, dupliziert man die Kachel und ändert die „Value“. Leider habe ich nicht herausgefunden, wie man den aktuellen Wert für das Wochenprofil ausliest. Mit dieser Info könnte man einen einzelnen Button verwenden und diesen togglen.

The post Homematic IP: Wochenprogramm via Home Assistant wechseln first appeared on bejonet - Linux | Smart Home | Technik.

Home Assistant: Absolute Luftfeuchtigkeit berechnen

Von: Benni

Das Heizsystem ist für viele der erste Einstieg in das Thema „Smart Home„. So ist es auch bei mir. Viele meiner Heizkörper laufen mittlerweile mit Heizthermostaten von Homematic. Zusammen mit der übergeordneten Software Home Assistant ist jetzt meine Menge möglich in meinen vier Wänden. Das Wandthermostat von Homematic ist sogar in der Lage, die relative Luftfeuchtigkeit zu messen. Das ist schon sehr nützlich und kann für weitere Auswertungen verwendet werden. In meinem Fall interessiere ich mich allerdings für die absolute Luftfeuchtigkeit, die sich von der relativen Luftfeuchtigkeit unterscheidet. Glücklicherweise lassen sich die beiden Werte ineinander umrechnen, und das Wandthermostat liefert auch alle notwendigen Messwerte dafür.

Unterschied zwischen relativer und absoluter Luftfeuchtigkeit

Mir als ausgebildeten Thermodynamiker liegt es natürlich am Herzen, dass man den Unterschied zwischen relativer und absoluter Luftfeuchtigkeit kennt. Der Unterschied liegt eigentlich auf der Hand und lässt sich schon anhand der Einheiten gut unterscheiden.

Viele Wandthermostate messen die relative Luftfeuchtigkeit

Die relative Luftfeuchtigkeit wird in Prozent angegeben. Die Luft ist ein Gemisch aus Gasen, ein Teil davon kann Wasserdampf sein. Wie viel das maximal ist, hängt von der Temperatur der Luft ab: je kälter es ist, desto weniger Wasserdampf kann dampfförmig in der Luft vorkommen. Sollte dieser Wert überschritten werden, bildet sich Nebel. Die relative Luftfeuchtigkeit gibt an, bis zu welchem Grad die Luft bereits mit Wasserdampf gesättigt ist. Sind die 100% erreicht, kondensiert alles zusätzliche Wasser und es wird neblig. Etwas thermodynamischer ausgedrückt, klingt die Definition so: Die relative Luftfeuchtigkeit gibt den Partialdruck des Wasserdampfs relativ zum Maximalwert bei aktueller Temperatur an.

Die absolute Luftfeuchtigkeit hingegen wird in g/m³ angegeben (andere Einheiten sind möglich). Bildlich kann man es sich so vorstellen, dass in einem Kubikmeter Luft die angegebene Menge Wasserdampf vorhanden ist.

Warum sollte man die absolute Luftfeuchtigkeit wissen wollen?

Eine typische Textaufgabe in Thermodynamik 1 könnte lauten: Im Wohnzimmer herrschen 22 °C und 40 % Luftfeuchtigkeit. Außen hat es 8 °C und 80 % Luftfeuchtigkeit. Steigt oder fällt die Luftfeuchtigkeit im Wohnzimmer, wenn man das Fenster öffnet?

Eine andere Fragestellung lässt sich ebenfalls darüber beantworten: Im Wohnzimmer herrschen 22 °C und 20 % Luftfeuchtigkeit. Das Raumvolumen beträgt 75 m³. Wie viele Kilogramm Wasser muss man verdunsten lassen, um auf 50 % Luftfeuchtigkeit zu kommen?

Wenn ihr es wisst, könnt ihr das gerne in den Kommentaren hinterlassen 🙂

Die Physik dahinter

Es sind zwei wichtige Formeln miteinander kombiniert. Die eine Formel, Antoine-Gleichung, berechnet den Sättigungsdampfdruck der Luft bei vorgegebener Temperatur. Die zweite Formel, die ideale Gasgleichung, berechnet daraus die absolute Feuchtigkeit. Die Temperatur und relative Feuchtigkeit werden vom Wandthermostat zur Verfügung gestellt.

Mit der Antoine-Gleichung kann der Sättigungsdampfdruck berechnet werden. Die hier gewählten Parameter A, B und C sind so gewählt, dass die Gleichung für Wasser angewendet werden. Die Temperatur T muss hier in Grad Celsius angegeben werden
Die Ideale Gasgleichung wird verwendet, um den Zustand eines idealen Gases zu beschreiben. Die spezifische Gaskonstante für Wasserdampf ist hier bereits eingesetzt. Die Temperatur T muss hier in Grad Celsius angegeben werden

Die Berechnung in Home Assistant

In Home Assistant legt man sich für diese Berechnung einen neuen Sensor an. Das geschieht über Templates. Dieser Sensor existiert nur softwareseitig und sein Messwert wird berechnet, nicht direkt gemessen. Ich habe das beispielsweise umgesetzt, indem ich in die configuration.yaml folgende Zeile ergänzt habe:

sensor: !include sensor.yaml

Mittels des folgenden Befehls habe ich besagte Datei erstellt und ihr den folgenden Inhalt gegeben.

$ touch sensor.yaml
$ nano sensor.yaml
- platform: template
  sensors:
    absolute_humidity:
	friendly_name: "Absolute Feuchte"
	unit_of_measurement: "g/m^3"
	icon_template: mdi:water-percent-alert
	value_template: "{{ 1000*e**(19.016-(4064.95/(float(states('sensor.wandthermostat_wohnzimmer_eg_actual_temperature'))+236.25)))*100/(461.66*(float(states('sensor.wandthermostat_wohnzimmer_eg_actual_temperature'))+273.15)) * float(states('sensor.wandthermostat_wohnzimmer_eg_humidity'))/100 | float }}"

In Home Assistant wird dieser Sensor in der Liste der Entitys angezeigt. Das Template hat sozusagen den neuen Sensor ins System integriert.

Im Home Assistant wird der neu angelegte Sensor als Entität aufgeführt. Jetzt kann er regulär verwendet werden.

The post Home Assistant: Absolute Luftfeuchtigkeit berechnen first appeared on bejonet - Linux | Smart Home | Technik.

Home Assistant Container installieren

Von: Benni

Smart Homes sind in aller Munde. Bei Neubauten sowieso, aber auch bestehende Immobilien werden gerne zu so genannten Smart Homes umgerüstet. Den großen Markt teilen sich natürlich kommerzielle Anbieter, aber gerade auf der Softwareseite konkurrieren auch freie und open source Software um die Kunden. Die bekanntesten Teilnehmer im open source Bereich sind FHEM, OpenHAB und Home Assistant (früher bekannt als hass.io).

Diese Software soll verschiedene smarte Geräte vereinen, so dass sie alle unter einer Haube stecken. Anstatt jeweils eine Anwendung für die Heizung, das Licht und die Energieversorgung zu verwenden, soll die Software übergeordnet sein. Sie bildet damit die Schnittstelle zwischen den Geräten und mir.

Ich möchte mein Haus mit dem Home Assistant smart machen, bzw. einige der vorhandenen Komponenten dort einbinden. In diesem Artikel möchte ich zunächst auf die Installation von Home Assistant Container eingehen.

Unterschied zwischen Home Assistant und Home Assistant Container

Der mächtige Home Assistant wird gerne auf einem Raspberry Pi installiert. In der Regel verwendet man dafür gleich ein ganzes Image für das Betriebssystem. Das bedeutet, dass man statt des üblichen Raspbian das „Home Assistant Operating System“ installiert.

Der Vorteil liegt darin, dass man den Home Assistant in vollem Umfang nutzen kann. Der Nachteil ist, dass man über ein stark angepasstes OS verfügt. Möchte man noch weitere Software darauf laufen lassen, könnte das zu Konflikten führen.

In meinem Fall laufen noch andere Prozesse auf dem Raspberry. Somit kommt für mich das OS nicht infrage. Stattdessen möchte ich auf Home Assistant Container setzen. Hier läuft die Software über Docker.

Benutzt man den Home Assistant Container, muss man mit Einschränkungen leben. Es ist beispielsweise nicht möglich, Add-ons zu installieren. Der Grund liegt meines Wissens darin, dass Add-ons als (Docker-)Container installiert werden. Und das geht nicht, wenn bereits die Hauptanwendung in einem (Docker-) Container läuft. [Falls das jemand genauer weiß, gerne einen Kommentar hinterlassen!]

Installation von Home Assistant Container

Was man als Vorbereitung braucht, ist ein installiertes Linux-System. In meinem Beispiel ist es Raspbian auf einem Raspberry Pi 4. Dort meldet man sich via SSH an.

Schritt 1: Docker installieren. Gegebenenfalls hat man eine alte Version bereits installiert. Diese muss man entfernen und die aktuelle Version installieren. Dazu wird das Docker-Repository hinzugefügt und die Software daraus installiert. Am Ende wird eine Benutzergruppe „docker“ erstellt (ggf. geschieht das automatisch). Der aktuelle Benutzer – hier nennt er sich pi – wird der Gruppe hinzugefügt.

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo   "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo groupadd docker
sudo usermod -aG docker pi

Schritt 2: Home Assistant Container installieren. Der folgende Befehl holt sich das entsprechende Image aus dem Dockerhub, lädt es herunter und installiert es. Es ist wichtig, dass der Ordnerpfad für die Konfigurationsdatei korrekt angegeben wird. Wie oben bereits beschrieben, fehlt die Add-on-Funktion. Um die configuration.yaml bearbeiten zu können, muss man an diese Datei herankommen. Mit der Flag -v mountet man einen existierenden Ordner in den Docker-Container und kann damit die Datei weiterhin bearbeiten.

mkdir /home/pi/homeassistant/config
docker run -d \
  --name="homeassistant" \
  --privileged \
  --restart=unless-stopped \
  -e "TZ=Europe/Berlin"
  -v /home/pi/homeassistant:/config \
  --net=host \
  homeassistant/home-assistant:stable

Wer lieber Docker Compose verwendet, kann den folgenden Eintrag in die *.yaml eintragen:

name: smart_home_p10
services:
    home-assistant:
        container_name: homeassistant
        privileged: true
        restart: unless-stopped
        environment:
            - TZ=Europe/Berlin
        volumes:
            - /home/pi/homeassistant:/config
        network_mode: host
        image: ghcr.io/home-assistant/home-assistant:stable

Schritt 3: Docker-Image verwalten. Die gesamte Home Assistant Installation kann man über den Container starten und stoppen. Ein Update führt man ebenfalls über das Docker-Image aus. Die Befehle hierfür lauten folgendermaßen.

# Update installieren
docker pull homeassistant/home-assistant:stable
# Container stoppen und entfernen
docker stop homeassistant
docker rm homeassistant

Schritt 4: Auf Home Assistant zugreifen. Ab jetzt erfolgt die Verwaltung des Home Assistant über die Weboberfläche. Mit http://<IP-Adresse des Raspberrys>:8123 kann man von einem PC des gleichen Netzwerks auf die Installation zugreifen. Änderungen an der configuration.yaml müssen weiterhin über die Systemoberfläche, also z.B. mit nano oder vim über SSH erfolgen.

nano /home/pi/homeassistant/config/configuration.yaml

The post Home Assistant Container installieren first appeared on bejonet - Linux | Smart Home | Technik.

KeePass Passwort-Manager mit Firefox verbinden

Von: Benni

Wer sich im Internet bewegt hat in der Regel auch viele Konten auf vielen Webseiten angelegt. Durch Datenskandale in den letzten Jahren wurden wir User immer wieder auf die Dringlichkeit für sichere Passwörter sensibilisiert. Es gibt viele Grundregeln, an die man sich halten soll. Die wichtigste Regel lautet: Jede Webseite muss ein eigenes Passwort erhalten.

Passwörter organisieren mit Passwort-Manager

Nach spätestens dem dritten, schweren Passwort hat man keine Lust mehr, sich die kryptischen Buchstaben-, Zahlen- und Symbolkombinationen zu merken. Schon gar nicht, wenn man ein Passwort nur selten braucht, etwa das für die Software der Steuererklärung. Ganz einfacher Tipp: ein Passwort-Manager muss her.

KeePass Password Safe – der freie Passwort-Manager

In der Freien-Software-Szene ist KeePass Password Safe weit verbreitet. Die Software ist für viele Plattformen erhältlich, man kann sie auf den Smartphone verwenden und die Verschlüsselung ist weitestgehend akzeptiert. Die Funktionen sind umfangreich, es wird bspw. die „Schwierigkeit“ des Passwort angezeigt und man kann sich Passwörter generieren lassen. Gerade diese Funktion ist sehr nützlich, wenn man sich häufig im Netz registriert.

KeePass Password Safe

Verbindung mit Firefox herstellen

Die Handhabung des Passwort-Managers verbessert sich maßgeblich, wenn man ihn mit Firefox verknüpfen kann. Das ständige Kopieren des Passworts für die (sehr unsichere(!!)) Zwischenablage entfällt, wenn man eine direkte Verbindung von Firefox zu KeePass herstellt. Firefox und KeePass lassen sich beide über Plugins erweitern, um diese Verbindung herzustellen. Das möchte ich nun beschreiben.

Für KeePass werden wir das Plugin KeePassRPC verwenden, in Firefox kommt das Plugin Kee zum Einsatz.

Schritt 1: KeePass vorbereiten

Zunächst muss man KeePass öffnen und Tools Plugins Get more Plugins aufrufen. Auf der Webseite sucht man nach der Erweiterung KeePassRPC. Diese Erweiterung stellt eine bidirektionale Kommunikation mit anderen Anwendungen her, in unserem Fall Firefox.

Über den Link gelangt man auf die Github-Seite, von der aus man die Plugin-Datei *.plgx herunterladen kann. Die heruntergeladene Datei speichert man im Ordner C:\Program Files (x86)\KeePass Password Safe 2\Plugins

Schritt 2: Firefox vorbereiten

Man klickt oben rechts in Firefox auf das Menü, Addons installieren, Suche nach „Kee – Password Manager“ und bestätigt mit einem Klick auf „hinzufügen zu Firefox„.

Kee – Password Manager: Erweiterung für Firefox

Schritt 3: Verbindung autorisieren

Nun schließt man KeePass und öffnet es erneut. Das Firefox-Plugin fragt nun nach einer Autorisierung. Es öffnet sich automatisch ein Fenster, in dem ein Code angezeigt wird. Diesen Code gibt man nun in Firefox ein und bestätigt mit „Verbinden“ – fertig.

KeePass gibt einen Code vor, sobald eine Anwendung über RPC eine Verbindung aufbauen möchte.
Die Verbindung zwischen Kee in Firefox und KeePass steht, sobald das eben angezeigte Passwort eingegeben wird.

Schritt 4: Benutzung des Passwort-Managers mit Firefox

Passwort speichern

Gibt man im Browser Zugangsdaten zum ersten mal ein, fragt Kee mit einem Fenster in der unteren rechten Ecke nach, ob das Passwort gespeichert werden soll. Bestätigt man dies, wird das Passwort in KeePass gespeichert und mit der zugehörigen URL abgelegt.

Passwort eingeben

Sobald man die Loginseite einer Webseite aufruft, füllt Kee die Loginfelder automatisch aus. Man erkennt das auch daran, dass das Kee-Logo neben dem Eingabefeld erscheint. Sollten mehrere Zugangsdaten für die gleiche URL hinterlegt sein, kann man über dieses Symbol zwischen ihnen wechseln. Das funktioniert natürlich nur, so lange KeePass im Hintergrund geöffnet ist.

The post KeePass Passwort-Manager mit Firefox verbinden first appeared on bejonet - Linux | Smart Home | Technik.

Thunderbird: Schriftgröße verändern ohne Addon

Von: Benni

Große Bildschrime mit 4K-Auflösung haben ihren Reiz. Das betrachten von Bildern ist viel angenehmer, genau wie deren Bearbeitung. Mehr Pixel bedeuten auch mehr Platz, man kann viele Fenster gleichzeitig geöffnet haben, ohne dass sich die Fenster überdecken.

Es gibt aber auch einen entscheidenden Nachteil: Die auf Pixelanzahl basierenden Schriftarten werden plötzlich sehr klein! Diesen Effekt unterschätzt man gerne, weil man ja denkt: größerer Bildschirm entspricht größerer Schrift! Das ist zwar sehr häufig der Fall, aber nicht bei allen Anwendungen.

Fenster werden größer, Schriften werden kleiner

In den Windows-Anzeigeeinstellungen kann man für das gesamte System die Skalierung einstellen. Auf manchen Laptops mit hochauflösenden Displays ist häufig 150% oder gar 200% eingestellt. Bei machen Anwendungen fühlt es sich daraufhin an, als ob man regelrecht angebrüllt wird. Daher lasse ich die Voreinstellung auf meinem stationären PC bei 100% Vergrößerung und kümmere mich um das einzige Programm, bei dem ich ernsthaft Schwierigkeiten habe: Thunderbird.

Schriftgröße auch für Posteingang und Ordner vergrößern

Die eingebaute Vergrößerung für Thunderbird (Menü, Ansicht, Zoom), Strg + „Plus“ bzw. Strg + „Minus“ funktioniert schonmal. Allerdings wird damit ausschließlich der Nachrichteninhalt vergrößert. Der Posteingang und die Ordner bleiben weiterhin in der kleinen Schriftart.

Abhilfe versprechen Plugins, die sind aber heute (Stand: Juli 2020) nicht mehr mit der aktuellen Thunderbird-Version kompatibel (68.9.0). Zum Glück braucht man aber auch gar kein Addon oder Plugin, um die Schriftart zu vergrößern.

Konfiguration anpassen, kein Addon installieren

Im Experten-Einstellungsmenü findet man die notwendige Einstellung. Man navigiere folgendermaßen:

  • Thunderbird-Menü
  • Einstellungen >
  • Einstellungen
  • Erweitert
  • Allgemein
  • Konfiguration bearbeiten… (das entspricht dem about:config)
    ggf. muss man mit „Ich bin mir der Gefahren bewusst!“ bestätigen.

Dort findet man den Parameter layout.css.devPixelsPerPx, der ist standardmäßig auf -1.0 eingestellt. Diesen Parameter muss man entsprechend anpassen, ich habe mich für 1.2 entschieden, dadurch erhalte ich eine angenehme Vergrößerung aller Schriften in Thunderbird.

Schriftgrößenvergleich in Thunderbird

The post Thunderbird: Schriftgröße verändern ohne Addon first appeared on bejonet.

WordPress-Plugin WP Maintenance Mode

Von: Benni

Wenn man eine neue Webseite erstellt oder die bestehende Webseite überarbeiten möchte, ist eine „Coming soon“ oder „Bald gibt es etwas neues“-Seite oft angemessen. Da ich häufig Webseiten mit WordPress gestalte, habe ich hierfür auch eine Idee gesucht.

Den Wartungsmodus kann man in WordPress relativ schön gestalten, wenn man das Plugin WP Maintenance Mode installiert. Das Plugin ist schlank und macht genau das was es soll: eine Coming Soon Seite anzeigen.

Das Plugin ist sehr minimalisitisch und bietet ein paar wenige Features. Ich halte mich dabei gerne an die Regel „weniger ist mehr“. Das bedeutet, dass ich meistens nur ein Bild anzeigen lasse. Es gibt noch mehr Möglichkeiten, zum Beispiel ein Countdown und die Möglichkeit, Text zu schreiben. Mir genügt lediglich das Bild.

Ein responsive-Bild lädt man übrigens über den Hintergrund hoch. Er wird standardmäßig über CSS so formatiert, dass immer die volle Breite des Fensters verwendet wird.

background-size: cover;

Manche Bilder wirken aber besser, wenn man die volle Höhe anzeigt und die Ränder links und rechts abschneidet. Das kann man machen, wenn man folgenden Code im Plugin-Editor in die Datei wp-maintenance-mode/includes/functions/helpers.php einfügt:

/**
 * Add code inside <head></head>
 */
function wpmm_add_code_to_head() {
    ?>
    <style>
		.background {background-size: contain;}
    </style>
    <?php

}
add_action('wpmm_head', 'wpmm_add_code_to_head', 10, 1);

The post WordPress-Plugin WP Maintenance Mode first appeared on bejonet.

WordPress Sicherheit erhöhen: Schritt für Schritt

Von: Benni

Die Sicherheit einer Webseite ist ein sehr wichtiges Thema. Man muss sich stets darum kümmern, auch wenn es lästig sein kann. Wer seine Webseite mit WordPress betriebt hat es auf der einen Seite sehr einfach, auf der anderen Seite aber auch wieder schwierig.

Die Sicherheitsvorteile, die WordPress mit sich bringt

WordPress ist sehr weit verbreitet. Millionen von Webseite laufen über diese Software. Die Entwicklung findet in einer sehr aktiven Community statt. Darin sind viele Sicherheitsexperten, die sich um das Beheben von Sicherheitslücken kümmern. Da diese Software so stark entwickelt wird, bleiben Sicherheitslücken nicht lange offen sondern werden zeitnah geschlossen.

Durch die Popularität von WordPress wird es für Angreifer aber auch wieder attraktiv, die Software zu knacken. Denn hat man einmal eine Lücke gefunden, kann man sie bei vielen Webseiten verwenden. Und schon sind wir beim typischen Katz-und-Maus-Spiel zwischen Hackern und Sicherheitsexperten.

Die Sicherheit von WordPress erhöhen

Mit den folgenden Artikeln habe ich Möglichkeiten gezeigt, wie man typische Eintrittstore von WordPress ausfindig macht und wie man wieder schließen kann. Die Goldene Regel der Sicherheit für jegliche Software lautet: Updates installieren, Updates installieren und Updates installieren. Alles weitere habe ich in einzelnen Artikeln zusammengefasst.

WordPress sichern mit .htaccess

htaccess mit FTP hochladen Mit der Datei .htaccess auf dem Webserver kann man WordPress serverseitig absichern. Die Angreifer möchten mit ihren Botnetzen das Passwort der Benutzer erraten. Wenn wir unsere Anmeldeseite von WordPress einfach hinter die abschließbare Tür unseres Servers packen, erhöhen wir die Eintrittshürde für Angreifer erheblich. Wie das geht und wie man das ganz genau Installiert, habe ich in einer Schritt-für-Schritt-Anleitung zusammengefasst.

WordPress: xmlrpc.php deaktivieren

xmlrpc in WordPress deaktivierenBei Softwareentwicklern und auch bei Angreifern ist die xmlrpc.php von WordPress sehr beliebt. Sie ist eine Schnittstelle für die Entwickler, worüber sie auf viele Funktionen von WordPress zurückgreifen können. Für Hacker ist das ein gefundenes fressen, denn sie können die Datei verwenden, um massenhaft Passwortanfragen zu stellen. In dieser Anleitung erkläre ich, warum die xmlrpc.php so gefährlich ist und wie man sie deaktivieren kann.

WordPress Sicherheitslücken finden mit wpscan

Die Goldene Regel der Sicherheit lautet Updates, Updates, Updates. Doch manchmal verliert man den Überblick über die Software, die in WordPress so eingebunden wird. Dazu zählen natürlich die Plugins, aber auch die Themes von WordPress. Man kann nicht nur im Backend von WordPress erkennen, welche Softwareversion die Plugins haben. Auch über das Frontend bzw. Schnittstellen vom Server kann man die Softwareversionen, und damit den Sicherheitsstatus, erkennen. Was man mit dem Programm wpscan so alles sieht und wie man es verwendet, wird in dieser Anleitung erklärt.

The post WordPress Sicherheit erhöhen: Schritt für Schritt first appeared on bejonet.

WordPress xmlrpc.php deaktivieren

Von: Benni

WordPress ist ein weit verbreitetes Content-Management-System. Eine sehr große Anzahl an Webseiten weltweit werden damit erstellt. Früher war es rein für Blogs gedacht, doch der weite Umfang der Funktionen, die einfache Handhabbarkeit und die Vielzahl an Erweiterungen hat dazu geführt, dass auch vollwertige Webseiten auf WordPress aufbauen.

Viele der Administratoren sind Laien und lassen sich von der Einfachheit der Software überzeugen. Leider werden so auch oft Updates vernachlässigt und sich auch sonst sehr wenig um die Sicherheit gekümmert. Diese Faktoren – starke Verbreitung, laienhafte Admins, Vielzahl an Plugins – macht WordPress auch attraktiv für Angreifer.

Bruteforce-Angriffe sind bei WordPress-Admins sehr bekannt. Unbekannte versuchen, häufig mit osteuropäischen IPs, durch plumpes Raten die Passwörter zu erhalten. Dabei setzen sie Bots ein, die selbstständig lange Listen an Passwortvorschlägen abarbeiten und so hoffen, das richtige Passwort zu erraten. Der Schutz der wp-login.php über .htaccess ist zumindest der erste Schritt, dieses Verfahren einzudämmen. Doch es gibt noch ein weiteres, sehr großes Fenster, über das Angreifer Eintritt suchen: die xmlrpc.php.

Angreifern von WordPress keine Chance geben

Was ist die xmlrpc.php?

Unter XML-RPC (Extensible Markup Language Remote Procedure Call) versteht man eine Schnittstelle zwischen einem System (hier WordPress) und externen Funktionen. Sie kümmert sich beispielsweise um Pingbacks, also ein- und ausgehende Mitteilungen von anderen Webseiten. Außerdem greifen verschiedene Plugins (wie beispielsweise Jetpack) oder Apps darauf zu. Es ist sozusagen die Schnittstelle zur Außenwelt.

Das wird uns Betreibern nur dann zum Verhängnis, wenn jemand versucht sie zu missbrauchen. Denn abgesehen von den gewollten Funktionen kann man diese Schnittstelle auch für Bruteforce Methoden verwenden. Hier können Angreifer gleich eine Vielzahl an Passwörtern ausprobieren, um das richtige zu erraten.

Seit WordPress 3.5 ist die Datei standardmäßig aktiviert. Vorher musste man im Admin-Panel  die Funktion aktivieren.

Warum sollte man die xmlrpc.php deaktiveren?

Die xmlrpc.php hat die primäre Funktion, WordPress zu vernetzen und Funktionen von außerhalb des Admin-Panels zu verwenden. Etliche Plugins brauchen diese Funktion, doch lange nicht jeder Benutzer verwendet solche Erweiterungen. Gerade wer WordPress eher als statische Seite verwendet, kann in der Regel auf die Funktionen der xmlrpc.php verzichten. In diesem Fall bietet sie Angreifern eine potentielle Zielscheibe und macht damit die Seite unsicher.

xmlrpc in WordPress deaktivieren

So deaktiviert man die xmlrpc.php in WordPress

Es gibt zwei Wege, wie man die Datei sinnvoll deaktiviert. Der erste davon beschreibt, wie man die Funktion „von innen heraus“ deaktiviert. Dazu editiert man die functions.php des aktuellen Themes und fügt dort folgenden Codeschnipsel hinzu.

/* Disable XMLRPC */
add_filter( 'xmlrpc_enabled', '__return_false' );

Die zweite Variante verhindert den Zugriff auf die Datei grundsätzlich. Hierzu ergänzt man die .htaccess-Datei, die man schon zur Beschränkung der wp-login.php verwendet hat, um folgende Textzeilen.

<Files xmlrpc.php>
 Order Deny,Allow
 Deny from all
 </Files>

Jetzt ist intern die Dateifunktion deaktiviert und auch von außen kann niemand mehr darauf zugreifen. Um seinen Erfolg zu überprüfen, kann man mit wpscan seine WordPress-Installation auf Sicherheitslücken überprüfen und so sehen, ob die xmlrpc.php noch zugänglich ist.

Weitere Schutzmaßnahmen

Die wichtigsten Schutzmaßnahmen für WordPress sind die gleichen wie für jede andere Anwendung auch: Verwendet sichere Passwörter und haltet die Software auf dem neuesten Stand, vor allem wenn sicherheitsrelevate Updates erschienen sind.

The post WordPress xmlrpc.php deaktivieren first appeared on bejonet.

WordPress Sicherheitslücken finden

Von: Benni

WordPress ist ein Content-Management-System (CMS), das sich sehr weit verbreitet hat. Die Einfachheit der Installation und Bedienung hat stark dazu beigetragen, dass sich WordPress im Internet zu einer starken Größe etabliert hat. Viele Webseiten sind damit ausgestattet.

Kleine Firmen nutzen für ihre erste Webseite dieses CMS, denn mit nur wenigen Klicks ist die Internetseite erstellt und mit den vielen Plugins lässt sich der Funktionsumfang stark erweitern.

Die große Verbreitung von WordPress macht die Software interessant für Angreifer. Hacker freuen sich regelrecht auf so weit verbreitete Systeme. Wenn dort eine Sicherheitslücke bekannt wird, lassen sich gleich viele Webseiten angreifen und vielleicht sogar übernehmen. Umso wichtiger ist es, solchen Angriffen aus dem Internet vorzubeugen und zu wissen, wie sicher die eigene WordPress-Installation ist.

Eigene Webseite auf Sicherheitslücken untersuchen und vor Angreifern schützen

Um die eigene Webseite vor Angreifern zu schützen, gibt es verschiedene Wege. Der wichtigste Punkt ist es, die Software aktuell zu halten und regelmäßig die Updates zu installieren. Außerdem sind schwierige Passwörter wichtig für das Sicherheitskonzept. Die besten Sicherheitsmaßnahmen nützen nichts, wenn die Passwörter leicht zu erraten sind.

Um die Sicherheit auf der eigenen Webseite zu erhöhen, muss man zunächst die Schwachstellen kennen. Die Sicherheitslücken von WordPress kann man mit dem Programm wp-Scan aufdecken. Das kleine Tool untersucht WordPress-Installationen und zeigt Sicherheitslücken auf. Solche Scans sollte man von Zeit zu Zeit durchführen, um den Überblick zu behalten.

Um einen Angreifer entgegentreten zu können, sollte man seine Werkzeuge kennen. Wenn man diese Werkzeuge kennt, kann man sie selbst einsetzen und kämpft mit gleichen Waffen. wpscan ist dann schon der erste wichtige Schritt. Denn diese Software wird gerne verwendet, um verwundbare WordPress-Seiten zu finden.

Sicherheitsmaßnahmen überprüfen

Es gibt viele Plugins, die einem höhere Sicherheit für WordPress versprechen. Es gibt zum Beispiel Erweiterungen, die die WordPress-Version der Webseite verschleiern sollen. Außerdem können angeblich Benutzernamen versteckt werden. Auch den Namen „admin“ sollte man vermeiden.

Diese Sicherheitsmaßnahmen sind sehr gut, doch ihre Wirksamkeit kann man nicht einfach überprüfen. Mit wpscan kann man es, denn das versucht über verschiedene Wege, Infos aus der Webseite zu crawlen. Die Sicherheitsmaßnahmen der Plugins kann man sofort feststellen, indem man seine Seite mit wpscan überprüft.

Installation von wpscan

Wpscan ist ein Projekt für UNIX und ist leider nicht auf Windows lauffähig. Um es unter Windows nutzen zu können, könnt ihr euch in einer Virtuellen Box eine Linuxdistribution installieren und von dort aus mit der Anleitung fortfahren.

Schritt 1: Die Installation der Abhängigkeiten von wpscan könnte ihr unter Ubuntu mit folgendem Befehl tun. Das Projekt läuft über git, daher wird es mit installiert.

sudo apt-get install git libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev zlib1g-dev

Schritt 2: Das Programm selbst installiert man mit folgenden Befehlen in der Kommandozeile:

git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && bundle install --without test

Schritt 3: Ausführen kann man das Program mit folgenden Befehlen. Es gibt jetzt eine Liste mit interessanten Meta-Informationen über die WordPress-Seite aus: Welche Version ist installiert, welches Theme, welche Plugins und welche Versionen jeweils. Es zeigt sogar an, ob es die aktuelle Version ist, oder ob es Updates davon gibt.

Unsichere WordPress Plugins, Themes und Benutzer entdecken

ruby wpscan.rb --update
ruby wpscan.rb --url http(s)://www.deineSeite.com --enumerate p

Die Ausgabe sieht danach etwa so aus.

Wordpress Sicherheitslücken mit wpscan finden

Gleiches Prinzip gilt für die Suche nach installierten Themes

ruby wpscan.rb --url http(s)://www.deineSeite.com --enumerate t

oder nach Benutzern

ruby wpscan.rb --url http(s)://www.deineSeite.com --enumerate u

Fazit

Das Programm ist sehr mächtig und zeigt einem erstmal, wie verwundbar eine WordPressseite eigentlich ist. Dadurch wird es offensichtlich: man sollte seine Installation sauber halten. Je mehr Plugins man installiert, desto angreifbarer wird die Seite. Jedes Plugin birgt potentielle Sicherheitslücken, die mit wpscan offensichtlich werden.

Es ist wichtig, die Webseite abzusichern. Wenn die Webseite übernommen wird, können Kriminelle ihre verbotenen Daten über den Server verteilen. So wird man schnell zum Mittäter, was sehr gefährlich werden kann.

Ein Schritt gegen Brute-Force Attacken ist der Schutz der wp-login.php, der Schlüsseldatei beim regulären Login auf WordPress. In einem Artikel zu diesem Thema erläutere ich, wieso es so wichtig ist, diese Datei zu schützen. Außerdem zeige ich, wie man mit der .htaccess-Datei die Schutzfunktion von Apache nutzt, um die wp-login.php vor Brute-Force-Angriffen zu schützen.

Weitere Sicherheitsmaßnahmen sind wichtig. Diese kann man mit wpscan direkt testen, was die Wirksamkeit sofort zeigt. Um die Sicherheit von WordPress zu verbessern, sollte man sich mit wpscan befassen.

The post WordPress Sicherheitslücken finden first appeared on bejonet.

WordPress Sicherheit erhöhen mit .htaccess – so geht’s in 4 Schritten!

Von: Benni

Angreifern von WordPress keine Chance geben

WordPress Seiten findet man immer häufiger im Internet. Das schlanke CMS ist sehr einfach zu bedienen und deshalb auch für Einsteiger interessant. Auch Firmen nutzen zum Start ins Internet sehr oft WordPress und tragen so zur rasanten Verbreitung bei. Die vielen Installationen von WordPress machen das Content-Management-System auch für Angreifer interessant. Die Bedienung von der Software ist so einfach, dass auch Web-Anfänger WordPress installieren und sich danach wenig um die Updates kümmern. Das öffnet Angreifern Tür und Tor.

Angreifer wollen euren Speicherplatz

Auch bei aktuell gehaltener Software und einer Minimalanzahl von Plugins gibt es genügend Schwachstellen, die man angreifen kann. Die größte Schwachstelle – und da kann WordPress selbst leider wenig machen – ist der Benutzer selbst. Durch zu leichte Passwörter lassen sich viel zu einfach Webseiten übernehmen.

Warum sollte jemand meine Webseite hacken?

In wenigen Ausnahmefällen interessiert sich der Angreifer tatsächlich für diese spezielle Webseite. Ein Wettbewerber könnte bei einer Firma gezielt Falschinformationen verbreiten, um sich selbst als besser da zu stellen. Das kommt vermutlich eher seltener vor.

In den allermeisten Fällen interessiert sich der Angreifer nicht für die eigentliche Webseite. In erster Linie geht es um die Übernahme des Servers bzw. zumindest des Speicherplatzes. Wer ins Backend von WordPress kommt, hat die Berechtigung, Dateien hochzuladen. Das ist ganz interessant, vor allem wenn es um urheberrechtlich geschütztes Material geht. Noch brisanter wird es, wenn es um illegale Daten geht, etwa gewaltverherrlichende Videos oder Kinderpornografie.

Als dritten Grund möchte ich Suchmaschinenoptimierung nennen. Wer von vielen Internetseiten Links auf seine Seite erhält, wird bei Google besser gerankt. Wer viele Zugangsdaten zu Webseiten hat, kann auch viele Links streuen und damit besser bei Google gefunden werden.

Wie kann ich Angreifer abhalten?

Es gibt sehr viele Sicherheits-Plugins für WordPress, die einem das Blaue vom Himmel versprechen. Zweifelsohne: Einige davon mögen hilfreich sein. Effektiver ist es aber, die Sicherheitsfunktion des Servers zu nutzen. Diese schützen auch vor so genannten Brute Force Attacken, bei denen Angreifer mit viel Rechenpower versuchen, die Passwörter zu erraten.

Sicherer Schutz der WordPress Anmeldeseite durch .htaccess

Mit der .htaccess-Datei kann man die Sicherheitsfunktion des Servers nutzen. Dabei ist das Prinzip so: Wenn man sich bei WordPress einloggen möchte, wird die Datei wp-login.php verwendet. Ohne diese Datei kann man sich nicht im Backend einloggen. Mit der .htaccess-Datei gibt man dem Server die Anweisung, dass nicht jeder auf diese Datei zugreifen darf. Wer diese Datei aufruft, muss seine Berechtigung dazu nachweisen – über einen Benutzernamen und Passwort.

.htaccess- und .htpasswd-Datei erstellen

Mit zwei einfachen Textdateien kann man den Serverschutz aktivieren.

  • .htaccess aktiviert das zugehörigen Servermodul und startet damit den Schutz der wp-login.php
  • .htpasswd enthält die Benutzernamen und (verschlüsselte) Passwörter, die den Zugang zu wp-login.php gewähren.

Schritt 1: Zunächst erstellt man die .htpasswd. Mit z.B. dem htpasswd-Generator kann man das Passwort verschlüsseln lassen und im Editor von Windows speichern. Mehrere Einträge sind möglich und sollten untereinander in die Datei geschrieben werden. Speichert die Datei unter dem Namen a.htpasswd auf dem Rechner ab.

htpasswd Datei Inhalt und WordPress schützen

Schritt 2: Jetzt erstellt man die .htaccess-Datei und füllt sie mit folgendem Inhalt. Speichert sie unter dem Namen a.htaccess auf dem PC ab.

# Stop Apache from serving .ht* files
<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>
&nbsp;
# Protect wp-login
<Files wp-login.php>
AuthUserFile /pfad/zur/.htpasswd
AuthName "Private access"
AuthType Basic
</Files>

Die Zeile die mit AuthUserFile anfängt, muss natürlich angepasst werden. Wenn ihr nicht wisst, wie der genaue Pfad dorthin lautet, erstellt fix eine PHP-Datei (zum Beispiel „pfad.php“) mit folgendem Inhalt, ladet sie mit FTP hoch und ruft sie im Browser auf (www.example.com/pfad.php). Löscht die Datei danach gleich wieder!

<html> 
<head> 
<title>absoluter-pfad</title> 
</head> 
&nbsp;
<body> 
<?php 
&nbsp;echo $_SERVER['DOCUMENT_ROOT']; 
?> 
</body> 
</html>

Schritt 3: Beide Dateien, a.htaccess und a.htpasswd werden mit FTP im WordPress-Hauptverzeichnis abgelegt.

Mit FTP die htaccess-Datei in das WordPress Hauptverzeichnis ablegen

Schritt 4: Benennt beide Dateien auf dem Server um, indem ihr das a vor dem Punkt entfernt. Die Dateien heißen jetzt .htaccess und .htpasswd und entfalten ihre Funktionen.

Hinweis: Falls dort schon .htaccess ist, öffnet die alte Datei und fügt den neuen Inhalt unten drunter hinzu!

Wie schützt mich die .htaccess-Datei vor Angreifern?

Professionelle Angreifer sitzen nicht mehr selbst am PC und versuchen die Passwörter zu knacken. Stattdessen nutzen sie Bot-Netzwerke und greifen automatisiert WordPress-Seiten an. Die Bots suchen gezielt nach einfachen Systemen und nutzen Schwachstellen von WordPress. Wenn dieser Bot nun auf das zusätzliche Sicherheitssystem stößt, bricht er entweder ab, oder er bricht sich die Zähne aus.

Was kann ich für meine Sicherheit tun?

Das wichtigste ist natürlich, die Software aktuell zu halten. Die Entwickler von WordPress bringen immer mal wieder Updates für die Software heraus, die man stets installieren sollte. In den meisten Fällen geht es dabei um Sicherheitsupdates.

Weiterhin sehr wichtig sind sichere Passwörter. Noch ist diese Botschaft nicht bei jedem angekommen, denn viel zu viele Leute verwenden viel zu einfache oder zu kurze Passwörter.

❌