Apples Wo Ist? Integration in FHEM

Begonnen von Guybrush, 13 August 2026, 15:25:00

Vorheriges Thema - Nächstes Thema

Jamo

#30
Deswegen heisst die sub ja auch 'getBlitzerORTE...'
Ich habe die sub um PLZ, Strasse und Hausnummer ergänzt.

sub getBlitzerOrteCallback($) {
    my ($param, $err, $data) = @_;
    my $hash = $param->{hash};
    my $BlitzerDev = $hash->{blitzerdev};
my $num = $hash->{num};

    if($err ne "")      # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
    {
        Log3 "[getBlitzerOrte]", 3, "error while requesting ".$param->{url}." - $err";   # Eintrag fürs Log
    }
#Log 1,"[getBlitzerOrte] $BlitzerDev ".$param->{data}." ".$param->{url}." ".$param->{httpheader}." ".$param->{code};
#Log 1,"$data";
my $Ort = "";
my $postcode     = ' ';
my $road         = ' ';
my $house_number = ' ';
my ($Ort) = $data =~ m/suburb":"([^"]+)"/;
if ((!defined $Ort) or ($Ort eq "")){
#Log 1, "[getBlitzerOrteCallback] search city_district";
        ($Ort) = $data =~ m/city_district":"([^"]+)"/;
#Log 1, "[getBlitzerOrteCallback] $Ort";
    }
if ((!defined $Ort) or ($Ort eq "")){
#Log 1, "[getBlitzerOrteCallback] search town $data";
        ($Ort) = $data =~ m/town":"([^"]+)"/;
#Log 1, "[getBlitzerOrteCallback] $Ort";
    }
if ((!defined $Ort) or ($Ort eq "")){
#Log 1, "[getBlitzerOrteCallback] search village $data";
        ($Ort) = $data =~ m/village":"([^"]+)"/;
#Log 1, "[getBlitzerOrteCallback] $Ort";
    }
    if ((!defined $Ort) or ($Ort eq "")){
#Log 1, "[getBlitzerOrteCallback] $Ort";
Log 5, "[getBlitzerOrteCallback] ".$param->{url};
Log 5, "[getBlitzerOrteCallback] $data";
        $Ort = ".";
    }
    my ($building) = $data =~ m/building":"([^"]+)"/;
    if ((!defined $building) or ($building eq "")){
        $building = ".";
    }
    ($postcode) = $data =~ m/postcode":"([^"]+)"/;
    if ((!defined $postcode) or ($postcode eq "")){
        $postcode = '';
    }
    ($road) = $data =~ m/road":"([^"]+)"/;
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/path":"([^"]+)"/;
    }
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/bridleway":"([^"]+)"/;
    }   
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/pedestrian":"([^"]+)"/;
    }
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/footway":"([^"]+)"/;
    }
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/square":"([^"]+)"/;
    }
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/neighbourhood":"([^"]+)"/;
    }
    if ((!defined $road) or ($road eq '')){
        ($road) = $data =~ m/city_block":"([^"]+)"/;
    }
    if ((!defined $road) or ($road eq '')){
        $road = '';
    }
    ($house_number) = $data =~ m/house_number":"([^"]+)"/;
    if ((!defined $house_number) or ($house_number eq "")){
        $house_number = '';
    }
    Log 5,"[getBlitzerOrteCallback] $Ort $building";
    #Log 1,"[getBlitzerOrte] ".$decoded_json->{address}->{suburb}->[0];
    fhem("setreading $BlitzerDev ".$num."PLZ $postcode Ort $Ort Strasse $road Hausnummer $house_Number");
    fhem("setreading $BlitzerDev ".$num."Building $building");
}
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic

ironalf

Danke dir für die schnelle Anpassung der sub :D
Ich musste nur eine kleine Änderung vornehemen:
fhem("setreading $BlitzerDev ".$num."PLZ $postcode Ort $Ort Strasse $road Hausnummer $house_Number"); > fhem("setreading $BlitzerDev ".$num."PLZ $postcode Ort $Ort Strasse $road Hausnummer $house_number")