Schlagwort: Software

Waveshare Modbus Relais in Homeassistant

In diesem Beitrag möchte ich dir zeigen, wie ich ein 8-fach Modbus Relais von Waveshare in Homeassistant eingebunden habe.

Material

Aufbau

Der Aufbau ist nicht kompliziert. Die Anschlüsse A+, B- und GND müssen mit den entsprechend gleichnamigen Anschlüssen am Relais verbunden werden. Dann ist nur noch eine Spannungsversorgung für das Relais notwendig und man kann loslegen.

Mitgelieferte Software

Im Waveshare Wiki findet man neben zahlreichen Beispielen auch einen Beispielcode in Python. Dieser sendet die Daten direkt über „serial“ an das Modbus Relais und zur Berechnung der Paritätsbytes wird ebenfalls ein eigenes Pythonmodul mitgeliefert. Das ist etwas umständlich, da es für Modbus bereits fertige Pythonmodule wie minimalmodbus gibt.

Steuerung mit Minimalmodbus

Nach der Installation mit

kann das Modul verwendet werden. Folgendes wäre ein Beispielcode:

In Zeile 3 wird der Pfad zum USB -> Modbus Konverter und die ID des Relais angegeben. Die ID wird in den meisten Fällen 1 sein. Bei mir habe ich sie aber geändert, da am selben Modbus auch ein Stromzähler hängt, der die ID 1 bekommen hat. Mit den Funktionen get_relais() und set_relais(relais, on/off) kann man jetzt die Relais schalten und deren Status abfragen.

Einbindung in Homeassistant

Um das Modbus Relais in Homeassistant einzubinden, verwende ich MQTT. Dieses sollte bereits installiert und eingebunden sein. Mein Code sieht dann folgendermaßen aus:

Hinzu kommt jetzt die Anbindung an MQTT. Wichtig ist dabei

  • Z. 8: Siehe oben
  • S. 23+25: Hier werden die Statuswerte der Relais an MQTT gesendet
  • Z. 29: Hier wird das MQTT Topic subscribed, an das nachher die Befehle zum setzen gesendet werden
  • Z. 43: Hier findet die Verbindung zum MQTT Broker statt

In Homeassistant verwende ich nun folgende Konfiguration:

Jetzt kann ich die Relais auch in Homeassistant schalten. Dabei muss das Pythonskript dauerhaft laufen, was man bspw. mit einer systemd Service Unit erreicht.

Gleichzeitig Modbus Relais und Stromzähler auslesen

Da ich, wie bereits erwähnt, einen Stromzähler und Relais an einem Modbus hängen habe und immer nur ein Programm auf den Modbus zugreifen kann, muss ich im selben Skript auch den Stromzähler auslesen. Das Skript dazu sieht so aus:

Hinzu kommt hier die Verbindung zur Influx Datenbank (Z. 12) und das eigentliche Auslesen des Stromzählers ab Z. 57. Es werden auch noch andere Stromzähler, die über Tasmota angebunden sind, ausgelesen, um einige Werte zu berechnen. Wichtig hier ist auch die Variable relais_freigabe, die dafür sorgt, dass wenn gerade der Stromzähler ausgelesen wird, mit dem Setzen des Relais noch kurz gewartet wird, da dies nicht gleichzeitig passieren kann.

Bildquelle: waveshare.com, wikipedia.org

Spicetify – Addons für Spotify

Spicetify bietet sowohl optische als auch funktionale Verbesserungen am Spotify Client für den PC. Dafür ist im Gegensatz zu vielen anderen Spotify Erweiterungen kein Spotify Premium erforderlich.

Installation

Nach der offiziellen Anleitung von Spicetify, installiert man das Programm mit folgendem Befehl:

Der nächste Befehl hat bei mir nicht funktioniert. Ich musste vorher noch folgendes ausführen:

Anschließend lässt sich auch der Spicetify Marketplace installieren:

Wenn Spotify als DEB-Paket von der Spotify Webseite installiert wurde, dann ist die Installation hiermit abgeschlossen. Da ich bei mir Spotify aber als Flatpak installiert habe, musste ich ein paar Dinge ändern. In der Config-Datei musste ich die Einstellungen für spotify_path und prefs_path anpassen:

Und dann noch Berechtigungen anpassen. 777 ist hier bestimmt zu viel. Ich lasse das aber erstmal so.

Dann war auch bei mir der Marketplace in Spotify sichtbar.

(Hinweis: nach einem Updaten mussten bei mir die Befehle sudo chmod 777 -R /var/lib/flatpak/app/com.spotify.Client/x86_64/stable/active/files/extra/share/spotify und spicetify backup apply nochmal ausgeführt werden.

Einige Spicetify Erweiterungen, die ich verwende:

Der Spicetify Marketplace teilt sich auf in Extensions, Themes, Snippets und Apps. Themes benutze ich keines, da ich keines der dort angebotenen Themes optisch ansprechender fand als das Standard-Theme.

Extensions

songstats

Diese Erweiterung zeigt Eigenschaften eines Songs an. Das sieht dann zum Beispiel so aus:

playlistIntersection

Mit dieser Erweiterung lassen sich Lieder finden, die in zwei Playlisten sind (oder nur in einer der beiden)

Display Full Album date

Diese Erweiterung zeigt statt nur dem Erscheinungsjahr das ganze Erscheinungsdatum bei der Albenansicht an:

Spotify Genres

Diese Erweiterung zeigt das Genre von dem Lied, das gerade läuft:

Power bar

Mit dieser Erweiterung bekommt man eine Suchleiste, wenn man Strg+Leertaste drückt:

Spicetify DJ Info

Diese Erweiterung gibt Informationen über das aktuelle Lied, die für DJs nützlich sind. das sind:

  • Tonart im Camelot System
  • Tempo in BPM
  • Energie
  • Beliebtheit

Snippets

Hide Upgrade Button

Diese Erweiterung tut genau das, was sie verspricht – sie lässt den Upgrade Button oben rechts verschwinden

Modern Scrollbar

Diese Erweiterung ändert die eckige Scrollbar in eine abgerundete.

Zeitrafferaufnahme mit Handy machen

Jetzt mal ganz ehrlich: Wie viele von euch haben in der Schublade noch ein altes Handy rumliegen? Oder vielleicht auch zwei? Oder drei? Dabei kann man sie doch noch für sinnvolle Dinge verwenden. Wie wäre es mit einer Zeitrafferaufnahme?

Die Hardware

Ein Stativ ist bei Zeitrafferaufnahmen auf jeden Fall sinnvoll. Wer keines hat, kann sich notfalls auch mit ein paar Büchern helfen oder wenn man einen 3D-Drucker hat, selbst eines ausdrucken.

Da Akkus von älteren Geräten nicht mehr so lange halten und die Kamera recht viel Strom braucht, ist es auch vorteilhaft eine Steckdose und ein Ladegerät zur Hand zu haben.

Die Software

Als Kameraapp verwende ich OpenCamera (Playstore, F-Droid). Dort gibt es die Einstellung, automatisch Bilder in bestimmten Intervallen zu machen. Dafür stellt man die Einstellung „Serienbild“ auf unbegrenzt und „Serienbild-Intervall“ auf die gewünschte Dauer.

Einstellungen in Opencamera für Serienbild

Um ein gleichmäßiges Bild zu bekommen, sollte man den Fokus, den Weißabgleich und die Belichtung sperren. Dazu aktiviert man die Icons unter Einstellungen -> Benutzeroberfläche und kann die anschließend in der Kameraansicht aktivieren:

Einstellung für gesperrten Weißabgleich und Belichtung in OpenCamera
Deaktivieren des Automatischen Weißabgleichs, Fokus und Belichtung

Akkustand von Bluetooth-Kopfhörer in Ubuntu anzeigen

Der Akkustand meiner Bluetooth-Kopfhörer wurde bei mir standardmäßig nicht angezeigt. Um das zu korrigieren, reicht eine einfache Änderung:

Konfigurationsdatei anpassen

In der Datei /etc/bluetooth/main.conf muss im Abschnitt „[General]“ ein

Eingefügt werden. Anschließend kann man entweder den ganzen Rechner oder nur den Bluetooth Service mit

neustarten und der Akkustand wird zum Beispiel in den Einstellungen unter „Energie“ angezeigt:

Ubuntu zeigt in den Einstellungen Akkustand an

Akkustand in der Leiste anzeigen

Damit ich nicht den Umweg über die Einstellungen gehen muss, zeige ich mir den Akkustand der Kopfhörer direkt in der oberen Leiste neben der Uhrzeit an. Dafür verwende ich folgende Gnome Extension: https://extensions.gnome.org/extension/5615/battery-indicator-upower/

Akkustand von Bluetooth Kopfhörer in Ubuntu

Putzfunktion für Raspberry Display

Wenn mein Display (hier kannst du dir anschauen, wie ich es eingebaut habe) schmutzig ist, ist es ganz praktisch, wenn es eine „Putzfunktion“ gibt, die für eine kurze Zeit alle Eingaben deaktiviert, sodass beim Putzen nichts verstellt wird. Hier möchte ich dir zeigen, wie ich das umgesetzt habe.

Installation des Webservers

Für diese Funktion verwende ich einen Webserver, der ein Request entgegennimmt. Dieser führt dann ein Shell Skript aus, das die Eingaben vom Touchscreen abschaltet.

PHP Skript

Dann verwende ich ein einfaches PHP Skript, welches ein Shell-Skript als User „pi“ startet:

Dieses habe ich in /var/www/html/cleanmode.sh gespeichert.

Shell-Skript

Für das Shell-Skript muss man zuerst die ID des Touchscreens herausfinden. Mit folgendem Befehl lassen sich alle IDs anzeigen:

Anschließend probiert man mit

alle IDs durch, bis der Touchscreen nicht mehr funktioniert. In meinem Fall war es die ID 7.

Folgendes Shell-Skript muss dann angepasst werden:

Die Zeit in Zeile 2 kann man ebenfalls nach Belieben anpassen. Mein Skript liegt in /home/pi/cleanmode.sh. Sollte das bei dir anders sein, musst du den Pfad im PHP Skript entsprechend ändern.

Den Benutzer www-data mit Root-Rechten ausstatten

Damit der User www-data (Dieser wird vom Webserver verwendet) das Shell-Skript als User pi ausführen kann, braucht er Root-Rechte.

ACHTUNG: Den Benutzer www-data mit Rootrechten auszustatten, ist ein großes Sicherheitsrisiko. Dies sollte man unter keinen Umständen auf einem vom Internet erreichbaren Webserver tun!

Wir öffnen dazu mit dem Befehl

Die Datei /etc/sudoers und tragen dort unter „User privilege specification“ folgende Zeile ein:

Nach dem Speichern mit Strg+O, dem Beenden mit Strg+X und einem Neustart hat der User www-data nun Root-Rechte. Öffnet man nun im Browser folgende URL:

http://[IP_DEINES_RPi]/cleanmode.sh

sollte sich der Touchscreen abschalten und nach 60 Sekunden wieder anschalten.

Putzfunktion in Homeassistant

Auf meinem Display läuft zur Zeit Homeassistant. Dort möchte ich die Putzfunktion gerne als Button haben. Außerdem möchte ich einen Timer, der mir anzeigt, wie viel Zeit ich noch habe, bis der Touchscreen wieder aktiviert wird.

In der config.yaml habe ich folgende Konfiguration hinterlegt:

Ersteres ist der Aufruf der URL, Zweiteres der Timer.

Anschließend habe ich im Homeassistant UI einen Button unter „Helfer“ erstellt.
Eine Automatisierung steuert dann das ganze, startet also den Timer und ruft dann die URL auf:

Homeassistant Automatisierung Putzfunktion

Und hier noch in Textform:

Solaranzeige Daten in Homeassistant

Heute Morgen habe ich mich an ein Problem gesetzt, das ich schon länger habe: Wie bekomme ich die Daten meiner Solaranzeige in Homeassistant? Oder ist es vielleicht sinnvoller, die Homeassistant SolarEdge Modbus Integration zu verwenden und die Daten dann von Homeassistant in die InfluxDB zu schicken?
Ich habe mich für die erste Variante entschieden. Dabei ist ein kleines PHP Programm entstanden. Dort gibt man einen MQTT „Block“ ein und heraus kommt dabei eine fertige Homeassistant Konfiguration, die man nur noch kopieren muss. Eine ausführlichere Anleitung wie’s funktioniert ist auch dabei.

Link: https://jojokorpi.ddns.net/solaranzeigetohomeassistant
Quellcode: https://github.com/jjk4/solaranzeigetohomeassistant

Mobile Alerts Sensoren mit Proxy lokal auslesen und an Homeassistant senden

Vor knapp zwei Jahren habe ich einen Beitrag darüber veröffentlicht, wie ich meine Mobile Alerts Temperatursensoren per Weboberfläche mit einem Pythonskript auslese. Diese Variante funktionierte bei mir und funktioniert immer noch ohne Probleme. Letztens bin ich aber auf eine andere Möglichkeit gestoßen, die mir deutlich besser gefällt, da sie zuverlässiger und unabhängig von der Cloud ist. Mit einem Proxy, der zwischen den Gateway und das Internet geschalten wird, können die Daten abgefangen und weiter verarbeitet werden.
Hierfür gibt es das Programm „maserver„. Es nimmt auch direkt die Einstellungen am Gateway vor. Dieses sendet die Daten anschließend an einen MQTT Broker. Bei mir läuft es auf einem RaspberryPi mit Ubuntu Server 22.04.

Vorbereitungen

Auf dem Server müssen zunächst nodejs und npm installiert werden:

Danach kann man den maserver herunterladen:

Im Ordner „MMMMobilealerts“ befindet sich jetzt der maserver.

Konfiguration

Darin befindet sich die Datei „config-example.json“. Benenne diese in „config.json“ um. Folgende Konfigurationsmöglichkeiten gibt es:

  • localIPv4Address: Die IP-Adresse des Geräts, auf dem der Proxy läuft. Wird nur benötigt, wenn es mehrere IP-Adressen hat, z. B. wenn es über mehrere Netzwerkschnittstellen angebunden ist oder Docker oder ein VPN Server darauf läuft.
  • mqtt: Die Adresse zum MQTT Broker.
  • mqtt_home: Das Topic, in dem die Daten auf dem MQTT Broker gesendet werden sollen.
  • mqtt_username, mqtt_password, logfile: Selbsterklärend.
  • logGatewayInfo: Ob Infos über gefundene Gateways angezeigt werden sollen.
  • proxyServerPort: Der Port, auf dem der Proxyserver laufen soll.
  • mobileAlertsCloudForward: Ob die Daten an die Mobilealerts Cloud gesendet werden sollen.
  • serverPost: Die Daten können zusätzlich auch per POST versendet werden.
  • serverPostUser, serverPostPassword, locale: Selbsterklärend.

Meine Konfiguration sieht dann so aus:

Installation

Der Proxy wird mit

installiert, während man sich im „maserver“ Verzeichnis befindet.

Start

Gestartet werden kann das Programm mit:

Es findet automatisch den Gateway im Netzwerk und konfiguriert sich selbst im Gateway als Proxy. Nach spätestens 15 Minuten sollten die ersten Daten zu sehen sein.

Daten an Homeassistant senden

Im Homeassistant fügen wir zuerst die MQTT Integration unter „Einstellungen“->“Geräte und Dienste“->“Integration Hinzufügen“ hinzu.

Die Konfiguration der einzelnen Sensoren erfolgt dann über die configuration.yaml Datei und sieht beispielsweise so aus:

Dabei ist XXXXXXXXXXXX die 12-stellige Geräte-ID, die man in der Mobile Alerts App oder direkt auf der Rückseite der Sensoren findet.

Nach einem Neustart sollten die Daten in Homeassistant erscheinen:

Mobile Alerts Sensoren in Homeassistant

Shelly Plug S in Grafana visualisieren

Wenn man Strom sparen möchte, ist es vorteilhaft zu wissen, welche Geräte wann wie viel Strom verbrauchen. Um das herauszufinden, gibt es Messsteckdosen, die man zwischen Steckdose und Stecker stecken kann, um den Stromverbrauch zu messen. Eine Möglichkeit dafür ist die Shelly Plug S. Diese Steckdose lässt sich per App bedienen. Dort kann man neben der aktuellen Leistung auch den Stromverbrauch sehen. Ein Diagramm, welches die Leistung über einen Zeitraum angibt, gibt es hier aber leider nicht. Und außerdem ist die Steckdose in dieser Form von der Cloud abhängig – das möchte auch nicht jeder.

Was ich an Shellys gut finde, ist, dass man sie auch völlig Lokal per Webinterface oder MQTT bedienen kann. Theoretisch kann man auf den meisten von ihnen sogar eine eigene Firmware flashen (Info dazu hier: https://templates.blakadder.com/index.html ), aber das wäre mir an dieser Stelle zu viel.

Material

Installation von MQTT

Auf dem Server müssen wir einen MQTT Server installieren, an den die Shelly die Daten senden kann:

Konfiguration der Shelly

Die Shelly macht bei ersten Start einen Hotspot auf, mit dem man sich beispielsweise mit dem Handy verbinden kann. Im Browser gibt man dann die Adresse http://192.168.33.1 ein, wo man dann die Zugangsdaten zum WLAN eingeben kann. Danach startet die Shelly neu und man kann nun das Webinterface aus dem Heimnetz öffnen und dort sämtliche Einstellungen vornehmen.

Unter „Internet & Security“, „Advanced Developer Settings“ gibt es hier den Punkt „Enable action execution via MQTT“. Diesen aktivieren wir und geben dann unter „Server“ die IP-Adresse des Servers und den Port (Standard ist 1883) an. Danach das Speichern nicht vergessen!

Shelly MQTT Einstellungen

Eine andere wichtige Einstellung wäre noch unter dem Punkt „Settings“ „POWER ON DEFAULT MODE“, also was passieren soll, wenn die Shelly mal keinen Strom mehr bekommt (z.B. bei einem Stromausfall). Das hängt davon ab, was an der Shelly hängt. Bei einer Lampe macht es Sinn, sie nach einem Stromausfall auszuschalten, während ein Kühlschrank immer an bleiben sollte.

Test

Mit dem Befehl

werden alle Nachrichten im Terminal angezeigt, die per MQTT verschickt werden. Nach spätestens 30 Sekunden (Die Shelly sendet alle 30 Sekunden Daten) sollte es eine Ausgabe geben, die ungefähr so aussieht:

Interessant sind hier die Punkte „Power“ (aktuelle Leistung in Watt) und „Energy“ (Gesamtverbrauch in Wattminuten)

Python Skript

Zuerst müssen folgende Python Module installiert werden:

Mein Code dafür ist folgender:

Kurze Erklärung: (Diese stellen müssen angepasst werden!)

Z. 7-8: Es wird eine Verbindung zur Datenbank hergestellt
Z. 14-15: Die topics von power und energy der Shelly werden subscribed. Hier können auch noch zusätzliche topics hinzukommen, z.B. für die Betriebstemperatur oder weitere Shellys, siehe Abschnitt „Test“)
Z. 19-30: Auch hier muss das topic angepasst werden. In diesem Abschnitt wird dann der Wert in der Konsole ausgegeben und anschließend in die Datenbank in das measurement „shellyplugs1“ in das Feld „leistung“ eingetragen. Dieser Abschnitt muss auch wiederholt werden, falls weitere topics nach Z. 15 hinzugefügt wurden.
Z. 44: Es wird eine Verbindung zum MQTT Broker hergestellt.

Dieses Skript kann nun laufen, zum Beispiel als Systemd Service Unit und schreibt die Daten dann in die Influx Datenbank, von wo sie beispielsweise mit Grafana visualisiert werden können.

Beispiel Visualisierung mit Grafana

Die Shelly hängt bei mir am Kühlschrank. Im folgenden Diagramm sieht man gut, dass die Ausschläge in der Nacht im Gesamtstromverbrauch (gelb) vom Kühlschrank kommen (grün):

Grafna Grafik

Pool-Temperatursensor mit dem ESP

Ich weiß nicht, wie ich auf die Idee gekommen bin, die Temperatur im Pool zu messen. War dann aber doch ein interessantes Projekt.

Hardware

Batteriebetrieben sollte er sein, da Netzspannung im Pool … Ihr wisst, was ich meine. Also fiel ein Raspberry schon mal weg – der braucht zu viel Strom. Etwas Kleineres musste her, ein Microcontroller, ein ESP, genauer gesagt ein Wemos D1 mini. Dazu noch ein Akku und ein Board, um den Akku aufzuladen und den ESP mit Strom zu versorgen.

Die Verkabelung des Sensors ist relativ einfach – Plus (rot) auf 5V, GND (Schwarz) auf GND und den Daten-Pin (Gelb) auf D4. Zwischen D4 und 5V muss dann noch der 4,7kOhm Widerstand geschalten werden.

Damit später der deepSleep funktioniert, müssen wir D0 mit RsT verbinden. Da jedoch dann die Verbindung über USB nicht mehr funktioniert, ist es nicht besonders sinnvoll, diese direkt zusammen zu löten. Ich mache das mit 2 kurzen Kabeln und einer Klemme.

Im Gehäuse sieht das ganze bei mir dann so aus:

Software

Eines vorweg: Mein Programm ist nicht schön und es gibt bestimmt viele Wege, es besser zu machen, aber es funktioniert. Ich sende meine Werte direkt in die Influx Datenbank (wäre – besonders bei mehreren Sensoren – über MQTT wohl sinnvoller).

Der ESP sendet dann alle 30 Minuten die Temperatur. Die Daten landen auf meinem Homeserver, wo ich sie dann mit Grafana visualisieren kann.

Visualisierung

Hier noch ein paar Beispieldaten über 7 Tage. In grün die Pooltemperatur und in gelb die Außentemperatur:

Beispieldaten Pooltemperatursensor

Logitech G915 mit Linux verwenden (Piper/Ratbag/solaar)

Vor einigen Wochen habe ich mir mal wieder eine neue Tastatur gekauft. Die Beleuchtung und Makros sind unter Linux ja immer so eine Sache – Bei manchen Herstellern funktioniert es problemlos, bei anderen gar nicht und bei wieder anderen funktionieren nur manche Geräte, andere wiederum nicht. Bei der G915 von Logitech ging es allerdings bis auf ein paar Kleinigkeiten recht gut.

Piper/Ratbag – für die Steuerung von Beleuchtung und Makros

Nach etwas Recherche stellte sich heraus, dass man die Tastatur wohl mit der Software „Piper“ ganz gut einstellen kann. Installiert war Piper schnell, danach gab es allerdings schon das erste Problem: Die Tastatur wurde nicht erkannt.

Piper zeigt an, dass kein Gerät gefunden wurde

Nach etwas Suchen im Internet kam ich dann auf die Lösung: Die USB-ID stimmte bei mir nicht mit der überein, die standardmäßig für diese Tastatur im Quellcode von Ratbag* festgelegt ist. Also schnell die ID mit lsusb im Terminal herausgesucht und anschließend die Konfiguration von Ratbag überarbeitet:

Die ID ist hier „046d:c541“. Nun muss in folgender Datei:

die Zeile mit „DeviceMatch=“ folgendermaßen überarbeitet werden:

am Schluss ist die ID, die mit dem vorherigen Befehl ausgelesen wurde. Anschließend dann noch den Service neustarten:

Jetzt wird die Tastatur von Ratbag erkannt:

Makro Einstellungen von Piper

Oben links kann das Profil ausgewählt werden (Umschaltbar durch die Tasten M1-M3 auf der Tastatur).

Im ersten Tab „Tasten“ lassen sich die Makros einstellen. Ich habe meine Tasten G3-G5 auf die Makros „Strg+Shift+Alt+1-3“ gelegt und diese dann anschließend zum Öffnen von verschieden Programmen in den Systemeinstellungen eingestellt. Die Tasten G1 und G2 lassen sich leider nur auf rechte/linke Maustaste stellen. Dieser Bug wird hoffentlich auch bald gefixt – mich stört es aber eigentlich nicht.

LED-Einstellungen von Piper

Unter dem Tab „LEDs“ lässt sich – wer hätte es gedacht – die Beleuchtung einstellen. Für die Tasten und separat das G-Logo lassen sich verschiedene Beleuchtungsmodi einstellen oder auch die Beleuchtung ganz ausschalten.

Zum Schluss nicht vergessen, auf „Zuweisen“ zu klicken. Dann werden die Einstellungen direkt auf der Tastatur gespeichert und Piper wird eigentlich nicht mehr benötigt.

.* Piper ist die grafische Oberfläche für Ratbag

Solaar – Akkustand anzeigen

Der Akkustand der Tastatur lässt sich mit „solaar“ anzeigen.

Solaar war schnell installiert und der Akkustand lässt sich ohne weitere Einstellungen auslesen.

Bei früheren Versionen hatte ich das Problem, dass die Beleuchtung und die Makros der Tastatur sich abgeschaltet haben, sobald solaar gestartet wurde. Dieses Problem ist mittlerweile behoben.