Σεισμολογικά δεδομένα Πανεπιστημίου Αθηνών στο Home Assistant
🇬🇷
Το παρόν άρθρο περιέχει οδηγίες για το πώς μπορούμε να έχουμε διαθέσιμα δεδομένα για τον πιο πρόσφατο σεισμό μιας περιοχής από το Εργαστήριο Σεισμολογίας του Πανεπιστημίου Αθηνών στο Home Assistant. Ως παράδειγμα τοποθεσίας χρησιμοποιείται η Σαντορίνη με ακτίνα 35 km.
Χρησιμοποιώντας το File editor Add-on, δημιουργούμε νέο φάκελο (directory) με όνομα packages
(αν δεν υπάρχει ήδη) και μέσα του δημιουργούμε νέο αρχείο με όνομα earthquake_santorini.yaml
και περιεχόμενο:
earthquake_santorini:
rest:
- resource_template: 'http://www.geophysics.geol.uoa.gr/stations/gmapv3_db/index.php'
method: 'POST'
payload: 'lang=en&outflag=csv&selmode=circle&CATDB=SC3DB&circlat=36.4102&circlon=25.3894&circrad=35&fromdepth=0&todepth=200&frommagn=3&tomagn=8&search=.csv' headers:
Content-Type: 'application/x-www-form-urlencoded'
scan_interval: 3600
sensor:
- name: 'Santorini earthquake datetime'
unique_id: earthquake_santorini_datetime
device_class: 'timestamp'
value_template: '{{ ((value.split("\n")[-2].split(",")[0].split(".")[0].strip() + "Z") | regex_replace(find="\s+", replace="T") | replace("/", "-") | as_datetime).isoformat() }}'
- name: 'Santorini earthquake latitude'
unique_id: earthquake_santorini_latitude
unit_of_measurement: '°'
value_template: '{{ value.split("\n")[-2].split(",")[1] | float }}'
- name: 'Santorini earthquake longitude'
unique_id: earthquake_santorini_longitude
unit_of_measurement: '°'
value_template: '{{ value.split("\n")[-2].split(",")[2] | float }}'
- name: 'Santorini earthquake depth'
unique_id: earthquake_santorini_depth
device_class: 'distance'
unit_of_measurement: 'km'
value_template: '{{ value.split("\n")[-2].split(",")[3] | float }}'
- name: 'Santorini earthquake magnitude'
unique_id: earthquake_santorini_magnitude
unit_of_measurement: 'richter'
value_template: '{{ value.split("\n")[-2].split(",")[4] | float }}'
- name: 'Santorini earthquake location'
unique_id: earthquake_santorini_location
value_template: '{{ value.split("\n")[-2].split(",")[5] }}'
- name: 'Santorini earthquake distance'
unique_id: earthquake_santorini_distance
device_class: 'distance'
unit_of_measurement: 'km'
value_template: '{{ value.split("\n")[-2].split(",")[6] }}'
template:
sensor:
- name: 'Santorini earthquake location coordinates'
unique_id: earthquake_santorini_location_coordinates
state: '{{ states("sensor.earthquake_santorini_magnitude") }}'
attributes:
latitude: '{{ states("sensor.earthquake_santorini_latitude") | float }}'
longitude: '{{ states("sensor.earthquake_santorini_longitude") | float }}'
Η τιμή του payload
στην πέμπτη γραμμή περιέχει τις παραμέτρους που ορίζουν τα δεδομένα που επιθυμούμε:
lang=en&outflag=csv&selmode=circle&CATDB=SC3DB&circlat=36.4102&circlon=25.3894&circrad=35&fromdepth=0&todepth=200&frommagn=4&tomagn=8&search=.csv
Πιο συγκεκριμένα:
lang
— Γλώσσα κειμένου για τον σένσοραearthquake_santorini_location
(en
για αγγλικά,el
για ελληνικά)outflag
— Μορφή δεδομένων (csv
για CSV)selmode
— Ορισμός σχήματος περιοχής γύρω από την τοποθεσία ενδιαφέροντος (circle
για κύκλο)CATDB
— Η βάση δεδομένων που χρησιμοποιείται (SC3DB
για NKUA analysis)circlat
,circlon
— Γεωγραφικό πλάτος και μήκος του στίγματος της τοποθεσίας ενδιαφέροντοςcircrad
— Η ακτίνα του κύκλου ενδιαφέροντος (σε km)fromdepth
— Ελάχιστο εστιακό βάθος σεισμού (σε km)todepth
— Μέγιστο εστιακό βάθος σεισμού (σε km)frommag
— Ελάχιστο μέγεθος σεισμού (σε Richter)tomagn
— Μέγιστο μέγεθος σεισμού (σε Richter)
Για να βρούμε τις κατάλληλες τιμές των παραμέτρων circlat
και circlon
μπορούμε να πάμε στο vouna.gr και να σημειώσουμε τις συντεταγμένες του στίγματος οι οποίες εμφανίζονται κάτω-αριστερά στον χάρτη καθώς κουνάμε το ποντίκι.
Τέλος, πάλι στο File editor Add-on, πηγαίνουμε ένα επίπεδο πίσω και ανοίγουμε το αρχείο configuration.yaml
προσθέτοντας:
homeassistant:
packages: !include_dir_merge_named packages
Κάνουμε επανεκκίνηση στο Home Assistant.
Αυτό θα έχει ως αποτέλεσμα να δημιουργηθούν οι ακόλουθοι σένσορες:
earthquake_santorini_datetime
— Ημερομηνία και ώρα σεισμού (timestamp
)earthquake_santorini_latitude
— Γεωγραφικό πλάτος επίκεντρου σεισμού σε μοίρες (float
)earthquake_santorini_longitude
— Γεωγραφικό μήκος επίκεντρου σεισμού σε μοίρες (float
)earthquake_santorini_depth
— Εστιακό βάθος σεισμού σε km (distance
)earthquake_santorini_magnitude
— Μέγεθος σεισμού σε Richter (float
)earthquake_santorini_location
— Περιγραφή τοποθεσίας σεισμού (string
)earthquake_santorini_distance
— Απόσταση επίκεντρου σεισμού από το στίγμα τοποθεσίας σε km (distance
)earthquake_santorini_location_coordinates
— Στίγμα επίκεντρου σεισμού για εμφάνιση σε χάρτη
Ακολουθεί παράδειγμα κάρτας σε dashboard:
type: vertical-stack
title: Santorini last earthquake
cards:
- type: map
entities:
- entity: sensor.earthquake_santorini_location_coordinates
label_mode: state
theme_mode: auto
- type: entities
entities:
- entity: sensor.earthquake_santorini_datetime
name: When
- entity: sensor.earthquake_santorini_distance
name: Distance
- entity: sensor.earthquake_santorini_depth
name: Depth
icon: mdi:arrow-up-down
- entity: sensor.earthquake_santorini_location
name: Location
show_header_toggle: false
Και ένα ενδεικτικό αποτέλεσμα: