Melding van aardbevingen op je mobiel

Gestart door Joost, 24 juli 2021, 08:00:01

Vorige topic - Volgende topic

Joost

Met onderstaand script krijg je op de telefoon meldingen van aardbevingen die door het KNMI geregistreerd zijn.
  • Maak in Domoticz een virtuele text device aan.
  • Pas de regels met "include" aan.
  • Pas de regels tussen BEGIN SETTINGS en END SETTINGS aan.
  • Laat het scripts periodiek via een cronjob draaien.

<?php
include("/home/pi/domoticz/scriptsjoost/php/functions.php");
include(
"/home/pi/domoticz/scriptsjoost/php/settings.php");

// ******* BEGIN SETTINGS *******
$lat '51.447474'// eigen locatie (lattitude)
$lon '5.756383'// eigen locatie (longitude)
$distMax '250'//afstand hemelsbreed in km
$IDX $idx725// idx-nummer gedefinieerd in settings.php
$url $domoticz_url// domoticz_url gedefinieerd in settings.php
$number 5// aantal laatste aardbevingen;
// ******** END SETTINGS ********

$xml 'https://cdn.knmi.nl/knmi/map/page/seismologie/GQuake_KNMI_RSS.xml';
$xml=simplexml_load_file($xml) or die("Error: Cannot create object");

$text ''
for (
$i 0$i <= ($number-1); $i++) {
    
$dist round(distance($lat$lon$xml->channel->item[$i]->children('geo'true)->lat$xml->channel->item[$i]->children('geo'true)->lon),0);
    if (
$dist <= $distMax) {
    
$description $xml->channel->item[$i]->description "<br><br>";
    
$description explode(','$description);
    
$text $text.$description[0].' ('.$description[1].') | '.str_replace('Plaats = ','',$description[6]).' | '.$description[4].' | '.$description[5].' | Afstand: '.$dist' km'.PHP_EOL.PHP_EOL
    }
}

$data $url.'json.htm?type=devices&rid='.$IDX;
if (
false == ($contents file_get_contents($data))) {
      echo 
"Kan geen gegevens ophalen van Domoticz";
} else {
    
$result=json_decode($contents);
$text3=$result->result[0]->Data;
}

if (
$text != $text3) {
Updatedevice($IDX,0,urlencode($text)); // regio
Telegram($text,false,1);
}
?>