Lese-Ansicht

Home Assistant: Animiertes Regenradar einfügen

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

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

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

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.

  •  

Nest Hub: Google ersetzt Cast OS mit eigenem Fuchsia OS

Seit dem Jahr 2016 entwickelt Google nach Android und Chrome OS mit Fuchsia ein komplett neues Betriebssystem, das nicht auf Linux basiert, und als Basis für eigene Geräte dienen soll. Nun wird das Betriebssystem auf dem Google Nest Hub der 1. Generation (Test), Googles Smart-Display mit Google Assistant, ausgerollt.

  •  
❌