Neue Integration: Erdbeben-Monitor

Hallo allerseits,

Motiviert durch eine Serie grösserer und kleinerer Erdbeben in der Region in der ich wohne (Nord-Griechenland) habe ich in den letzten Tagen an einer Integration gebastelt, die die lokale und globale Erdbeben-Aktivität in Home Assistant sichtbar macht. Jetzt ist die Integration so weit, daß ich sie mal einer grösseren Gemeinde vorstellen möchte. Vielleicht hat ja der eine oder andere mal Lust, sie auszuprobieren und Feedback zu geben. Bei mir läuft alles stabil, aber das heißt ja nicht viel - irgendwelche edge-cases werden vielleicht nicht erfasst oder nicht perfekt ausgewertet.

Was die Integration tut, ist den (nahe-)Echtzeit-Webfeed des European-Mediterranean Seismological Centre (EMSC) per WebSockets zu lesen und die Information benutzerfreundlich aufzuarbeiten. Obwohl die Daten von einem Europäischen Zentrum kommen, decken sie alle Erdbeben weltweit ab. Das Ergebnis wird in HA als Sensor eingebunden, der in seinen Attributen die Magnitude (Stärke) und verwendete Skala, geografische Koordinaten des Epizenters, Zeit (lokal und UTC), Tiefe und Region des letzten Erdbebens vorhält. Zudem berechnet die Integration die Entfernung vom Referenzpunkt (in der Voreinstellung die Koordinaten der Home-Zone) und die Richtung vom Referenzpunkt zum Epizentrum (in Grad und in Kompass-”Windrichtungen”), und stellt die Daten auch als String mit dem relativen Ort (zB “42.3 km SW des Referenzpunkts”) zur Verfügung. Die Daten kann man dann in HA zur Darstellung in einer Kachel, auf einer Landkarten-Karte, oder für Automationen verwenden.

Eine genaue Beschreibung habe ich in der README-Datei in der Github-Repo hinterlegt. Dort ist auch die Installation und Konfiguration genau beschrieben. Die Installation kann über ein benutzerdefiniertes Repository in HACS oder manuell durch Kopieren der Dateien bei Github in das Dateisystem von HA erfolgen.

Das Ganze sieht dann so aus:

Konfigurierbar sind dabei der gewünschte Name der Entität, die Koordinaten des Referenzpunkts, sowie der Umkreis um den Referenzpunkt und die minimale Stärke, um ein Erdbeben zu erfassen. Ein separater Schwellenwert ist einstellbar, um auch starke nicht-lokale Erdbeben (also ausserhalb des lokalen Umkreises) zu erfassen, wenn das gewünscht ist.

Die Entität selbst und ihr Verlauf werden dann so dargestellt:

und die Details zum letzen Erdbeben (drei-Punkte-Menü rechts oben in der Entität, dann “Details”):

Die Details des letzten Erdbebens sind dabei persistent, gehen also auch nicht verloren wenn HA neu gestartet wurde.

Zum jetzigen Zeitpunkt ist die Integration in 12 Sprachen verfügbar (wobei acht davon mit Hilfe von AI entstanden sind - Fehler sind also gut möglich!): Deutsch, Englisch, Griechisch, Spanisch, Französisch, Italienisch, Holländisch, Polnisch, Portugiesisch (Portugal und Brasilien), Türkisch und Japanisch. Das sollte die meisten Länder und User abdecken, vor allem in Erdbeben-gefährdeten Ländern; Deutschland und die Niederlande zähle ich jetzt mal nicht dazu. Wer Fehler in den Übersetzungen findet, oder andere Übersetzungen braucht: Bitte melden!

8 „Gefällt mir“

Eine tolle Sache hast du da!
Gibt es da feste Koordinaten? Also ich sag mal Athen, Ioannina, Saloniki. Kann man auch kleinere Orte aka Metsovo, Castoria anwählen?

Danke für das positive Feedback!

Die Voreinstellung für die Koordinaten ist die Home-Zone des Benutzers, die du in HA eingestellt hast (gerundet auf 5 Nachkommastellen, was etwa 1 Meter Genauigkeit entspricht). Alternativ kann jeder Punkt auf der Erde in Form ihrer Koordinaten eingetragen werden, also auch das kleinste Dorf. Am einfachsten findet man die Koordinaten über Google Maps auf dem Smartphone raus: einfach auf irgendeinen “leeren” Punkt klicken (also einen der nicht schon mit irgendeinem Laden/Restaurant oä belegt ist, sonst zeigt Google nur die Infos zu diesem an!). Die Koordinaten stehen dann oben in der Google Suchzeile, also zB so:

Das sind in diesem Beispiel die Koordinaten der Bären-Statue auf der Plateia von Metsovo. Die kann man dann abschreiben und bei der Einrichtung der Integration eintragen.

Alternativ könnte man während der Einrichtung der Integration den Mittelpunkt seiner Home-Zone kurz auf den gewünschten Punkt umstellen - das würde ich aber nur machen, wenn da nicht viel dranhängt, also irgendwelche Automationen oder ähnliches.

Für die nächste Version habe ich mir überlegt, die Ortswahl noch zu erweitern und vereinfachen. Zum Beispiel so, daß die Integration bei der Ersteinrichtung nach einer Zone mit definiertem Namen sucht (zB. “Erdbeben-Referenz”), und dann die Koordinaten und den Radius von dort übernimmt. Das wäre sehr bequem in der grafischen Oberfläche von Home Assistant unter “Bereiche, Labels & Zonen“ → “Zonen” → “Zone erstellen” einstellbar. Wenn diese Zone nicht existiert, würden die Koordinaten der Home-Zone verwendet (so wie in der jetzigen Version).

Cool, werde ich testen.
Das wird für mich interessant werden, weil ich dabei bin, meinen Lebensmittelpunkt in eine Region mit höherer seismischer Aktivität zu verlegen, DANKE…

Das neuste Update (v1.3.2) macht es jetzt möglich, im grafischen Editor von HA den Bereich festzulegen, der einen interessiert, ohne Koordinaten herausfinden zu müssen. Dazu einfach vor dem Einrichten der Integration eine Zone in HA erstellen, und sie “Earthquake Reference” oder “earthquake_reference” benennen. Wenn diese Zone existiert, werden ihre Daten (Koordinaten und Radius) als Voreinstellung für den Erdbeben-Monitor verwendet.

Wenn keine Zone mit diesem Namen existiert, werden wie bisher die Daten der Home-Zone des Benutzers verwendet.

1 „Gefällt mir“

Was cool wäre, meine Homezone ist ja in DE, aber ich bräuchte zwei Zonen in GR die halt relativ weit auseinander liegen. Oder ich müsste ganz GR in die Auswertung nehmen. aber ich brauche ja einen konkreten Punkt stimmts!?

Ah, grad gelesen “Radius”…

Klingt interessant, in der Schweiz zittert es ja auch regelmässig :zany_face:

Bisher ist die Integration so gemacht, daß man nur eine Zone als Entität anlegen kann - ich denke aber es sollte kein Problem sein, in der nächsten Version mehrere Zonen zu erlauben. Der Code ist schon dafür vorbereitet. Wo wären denn deine Zonen in GR?

probier’s bitte aus - ich bin dankbar für Verbesserungsvorschläge (wobei ich natürlich nicht garantieren kann daß ich alles umsetzen kann).

Fände ich eine sehr gute Verbesserung.

Ja, auch von mir ein “Daumen hoch”, auch wenn ich es Stand jetzt (noch?) nicht brauche.

perfekt - ist vorgemerkt! Mal sehen ob ich die Tage dazu komme das zu implementieren. Sollte EIGENTLICH einfach sein, aber das sind ja immer die schlimmsten Dinge :slight_smile:

Weitere Verbesserungen die mir vorschweben sind Attribute “Land” und “nächste grössere Stadt”. Das braucht allerdings etwas mehr Coding (aber ich kann mir da ja zum Glück von AI helfen lassen).

Ioannina, Konitsa und Athen wären relevant

Kommst du aus dem Epirus? :slight_smile:

Ne, nur eingeheiratet :joy: :joy:

also, nach ein bisschen Coden ist jetzt das Update auf v1.4.0 verfügbar, das folgendes kann:

  • mehr als eine Entität/Sensor (also mehrere Zonen)
  • neue Attribute “country” und “nearest city” für das Land und die nächstliegende grössere Stadt (>25000 Einwohner)

bei mir funktionierts, aber wie immer bin ich für Feedback dankbar!

ach ja, wenn’s gerade jetzt einer ausprobieren will: Der offizielle Webfeed, von dem die Integration ihre Daten übernimmt, ist wegen Wartungsarbeiten zur Zeit offline: “temporarily unavailable on April 16 from 08:00 to 12:00 CET due to mandatory electrical safety shutdown tests.“

1 „Gefällt mir“

Also bei mir kommt nur das Land bzw. die Region, aber nicht die nächste größere Stadt.
Hier mal der Inhalt der debug-Node aus Node-Red:

16.4.2026, 11:06:28node: debug 1
sensor.erdbebenmeldungen : msg : Object
object
payload: "2.8"
data: object
entity_id: "sensor.erdbebenmeldungen"
old_state: object
new_state: object
entity_id: "sensor.erdbebenmeldungen"
state: "2.8"
attributes: object
action: "update"
unid: "20260416_0000010"
time: "16. April 2026 03:14:04"
time_utc: "16. April 2026 01:14:04"
lastupdate: "16. April 2026 03:26:31"
lastupdate_utc: "16. April 2026 01:26:31"
time_raw: "2026-04-16T01:14:04.26Z"
time_utc_raw: "2026-04-16T01:14:04.260000+00:00"
lastupdate_raw: "2026-04-16T01:26:31.250489Z"
lastupdate_utc_raw: "2026-04-16T01:26:31.250489+00:00"
magnitude: 2.8
region: "NORTHERN ITALY"
depth: 9.8
latitude: 46.3588
longitude: 12.9048
magtype: "ml"
distance_km: 414.6
bearing_deg: 137
bearing_text: "SE"
relative_location: "414.6 km SE of reference point"
within_radius: true
icon: "mdi:waveform"
friendly_name: "Erdbebenmeldung (D)"
last_changed: "2026-04-16T08:50:32.519860+00:00"
last_reported: "2026-04-16T08:53:41.901313+00:00"
last_updated: "2026-04-16T08:53:41.901313+00:00"
context: object
id: "01KPAQY0CDKCRMSCMF45RKZZY1"
parent_id: null
user_id: null
timeSinceChangedMs: 955618
topic: "sensor.erdbebenmeldungen"
_msgid: "6bf5205e855c30a6"

liegt das evtl. hier an:

Und beim Update hat es meine alte Entität “zerschossen” bzw. umbenannt.

Habe nun die 1.4.0 installiert. Momentan komme ich aber nicht auf den Webserver. Es wird nur “Warten auf Ereignisse angezeigt”.

12:52
Die Seite von https://www.emsc.eu ist wieder online, meine Instanz wartet noch auf Daten…

Der websocket feed ist noch nicht wieder am Laufen, auch nicht auf der Original-Seite SeismicPortal - Standing order web services demonstration - keine Ahnung wie lang es noch dauert, aber solange der feed nicht läuft kann auch die Integration nichts anzeigen.

1 „Gefällt mir“

vermutlich, ja. Die Wartungsarbeiten sind etwas lästig - gerade wenn man schauen will ob etwas funktioniert.

Daß die alte Entität zerschossen wurde, ist komisch. Wenn der Webfeed wieder da ist und es immer noch Problem gibt, mach ich mich ans Troubleshooting. Prinzipiell ist es möglich, daß man die Entität neu anlegen muß, weil ich im Update den Code verändern musste um mehr als eine Entität zuzulassen. Aber EIGENTLICH sollte die Entität nach dem Neu-Erstellen die alten Daten wiederherstellen, wenn die Entität den gleichen Namen hat. Daß die Entität noch die alten Attribute anzeigt sagt mir, daß das Wiederherstellen bei dir funktioniert hat, weil die neuen Attribute in den wiederhergestellten Daten natürlich fehlen, aber der Sensor auch nicht “unknown” ist (die Attribute werden nur geschrieben, wenn ein neues Ereignis “hereinkommt”, nicht nachträglich).

EDIT: der Feed scheint wieder zu laufen, das erste Ereignis ist um 14:32:06 (deutsche Zeit) in meinen Logs eingelaufen!