Hi,
weiss jemand wie ich im fhem oder prüfen kann ob sich Geokoordinate A im Unkreis X von Geokoordinate B befindet?
ich habe die geokoordinaten von meinem Auto, würde aber gern einen dummy schalten sobald die Koordinaten vom auto sich innerhalb eines bestimmten umkreises um einen bestimmten anderem Punkt befinden.
Hintergrund ist das ich 2 Parkplätze daheim habe. wenn das Auto auf Parkplatz 1 steht soll der dummy Parkplatz auf 1 gesetzt sein. Wenn das Auto auf Parkplatz 2 steht dann auf 2.
Die Parkplätze sind weit genug von einander entfernt das das gehen müsste wenn ich schauen kann ob die koordinate die das Auto liefert sich im umkreis von 20m der Parkplatzmittelpunkt koordinate befindet.
Nur stehe ich auf dem Schlauch wie ich das in FHEM machen kann.
Das hier vielleicht?
##########################################################
# Calculate distance between two geocoordinates
##########################################################
sub calcDistkm ($$$$) {
my($latNew,$lonNew,$latOld,$lonOld) = @_;
#Entfernung zur Home-Koordinate (Luftlinie)
#Berechnung nach: https://www.kompf.de gps distcalc.html
# Verbesserte Methode
#my $lat = ($latNew + $latOld) / 2 * 0.01745;
#my $dx = 111.3 * cos($lat) * abs($lonNew - $lonOld);
#my $dy = 111.3 * abs($latNew - $latOld);
#Einfache Variante
my $dx = 71.5 * abs($lonNew - $lonOld);
my $dy = 111.3 * abs($latNew - $latOld);
my $distance = sprintf("%.2f",sqrt($dx * $dx + $dy * $dy));
return $distance;
}
Danke das sieht gut aus. Werd ich mal testen.