Blitzer anzeigen

Begonnen von bismosa, 06 August 2018, 15:21:12

Vorheriges Thema - Nächstes Thema

Floriky

Also bei mir läuft das alles Suuuuuuuuuuuuper! Vielen Dank an alle für eure Arbeit!

Floriky

Hallo Zusammen,

finde seit der Übernahme des Codeschnipsels folgende Einträge in meinem Log:

2019.01.18 07:59:55 1: PERL WARNING: "my" variable $out masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 240.
2019.01.18 07:59:55 1: PERL WARNING: "my" variable $Ort masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 304


Zur Zeile 240:

Zeile:
    my $out = join(", ", @ListeSort)."\n";

aus:
        #Entfernung zur Home-Koordinate (Luftlinie)
        #Berechnung nach: https://www.kompf.de/gps/distcalc.html
        #Einfache Variante
        my $dx = 71.5 * abs($lng - $Poi_lng);
        my $dy = 111.3 * abs($lat - $Poi_lat);
                my $distance = sqrt($dx * $dx + $dy * $dy);

                #MaxEntfernung einbeziehen
                if (not $distance > $maxkm){
                        Log 5,"[getBlitzer] distance: $distance";
                push @Liste, [ $distance, $Poi_street, $Poi_vmax, $Poi_lat, $Poi_lng ];
                } else {
                        Log 5,"[getBlitzer] $distance > $maxkm";
                }




}
    my $out = join(", ", @Liste)."\n";
    Log 5,"[getBlitzer] $out";
    my @ListeSort = sort {$a->[0] <=> $b->[0]} @Liste;
    my $out = join(", ", @ListeSort)."\n";
    Log 5,"[getBlitzer] $out";

    #Eintragen ins Dummy-Device
    #Eintragungen erst löschen



Zur Zeile 304:

Zeile:
my ($Ort) = $data =~ m/suburb":"([^"]+)"/;


aus:
    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 ($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 = ".";
    }


Kann das mit meinem Wissensstand leider überhaupt nicht einschätzen . Hab ich da was falsch gemacht?

Vielen Dank vorab!

Grüße
Florian

mumpitzstuff

Du legst einfach eine Variable doppelt an:

my $out = join(", ", @Liste)."\n";
my $out = join(", ", @ListeSort)."\n";


und

my $Ort = "";
my ($Ort) = $data =~ m/suburb":"([^"]+)"/;


Lösung:

#my $out = join(", ", @Liste)."\n";
    #Log 5,"[getBlitzer] $out";


Diese beiden Zeilen auskommentieren.

#my $Ort = "";

Und diese Zeile ebenfalls.

bismosa

Hallo,

danke für den Hinweis. Ich habe es direkt im ersten Beitrag bereinigt.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Floriky

Zitat von: mumpitzstuff am 18 Januar 2019, 08:56:06
Du legst einfach eine Variable doppelt an:

my $out = join(", ", @Liste)."\n";
my $out = join(", ", @ListeSort)."\n";


und

my $Ort = "";
my ($Ort) = $data =~ m/suburb":"([^"]+)"/;


Lösung:

#my $out = join(", ", @Liste)."\n";
    #Log 5,"[getBlitzer] $out";


Diese beiden Zeilen auskommentieren.

#my $Ort = "";

Und diese Zeile ebenfalls.

Hallo und Danke mumpitzstuff! Die Meldung ist weg! Ich liebe dieses Forum einfach! So sollte Internet immer sein...  ;) Viele Grüße


Zitat von: bismosa am 18 Januar 2019, 09:27:11
Hallo,

danke für den Hinweis. Ich habe es direkt im ersten Beitrag bereinigt.

Gruß
Bismosa

Hallo Bismosa,
kann es sein, dass das nicht geklappt hat oder verstehe ich was falsch? Will nicht drängeln - nur nichts falsch machen.

Grüße Florian

bismosa

Hallo,

doch...das sollte geklappt haben.
Ich habe es jedoch etwas anders gemacht:

    my $out = join(", ", @Liste)."\n";
    Log 5,"[getBlitzer] $out"; 
    my @ListeSort = sort {$a->[0] <=> $b->[0]} @Liste;
    $out = join(", ", @ListeSort)."\n";

Ich habe hier jetzt die Variable "out" nur noch 1x deklariert.
Man kann es auch so machen, wie vorgeschlagen. Dann hat man aber bei "Debug 5" diese Ausgabe nicht mehr.

#my $Ort = "";
Ist auch auskommentiert.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Floriky

Zitat von: bismosa am 18 Januar 2019, 10:21:10

Ich habe hier jetzt die Variable "out" nur noch 1x deklariert.
Man kann es auch so machen, wie vorgeschlagen. Dann hat man aber bei "Debug 5" diese Ausgabe nicht mehr.

#my $Ort = "";
Ist auch auskommentiert.

Gruß
Bismosa

Ok, dann ist gut! Danke für deine Mühe!

curt

Zitat von: bismosa am 18 Januar 2019, 09:27:11
danke für den Hinweis. Ich habe es direkt im ersten Beitrag bereinigt.

Args ... bedeutet das jetzt, dass man jedesmal den ersten Beitrag zeilenweise nachvollziehen muss?
RPI 4 - Jeelink HomeMatic Z-Wave

bismosa

Hallo,

ZitatArgs ... bedeutet das jetzt, dass man jedesmal den ersten Beitrag zeilenweise nachvollziehen muss?

Ja...letztendlich schon. Oder man hat es mitbekommen und den Beitrag
https://forum.fhem.de/index.php/topic,90014.msg890222.html#msg890222
gelesen.

Da viele es entweder selbst angepasst haben oder direkt kopiert haben ist für jeden anders. Bei einer direkten Kopie einfach neu kopieren oder die entsprechenden Zeilen bearbeiten.
Sollte machbar sein.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

curt

Naja - aber spätestens jetzt wird es für Neueinsteiger unübersichtlich. Und auch für Leute wie mich - nun gibt es ja zwei Versionen der vorgeschlagenen Änderung.

Ich würde es schöner/zielführender finden, wenn es irgendwo (Wiki?) eine aktuelle Version gäbe.
RPI 4 - Jeelink HomeMatic Z-Wave

bismosa

Hallo,

dann stelle es doch ins Wiki. Was hätten wir dann? Noch mehr Chaos!
Da gibt es dann keine Diskussion...sondern es wäre einfach ohne das es jemand mitbekommt geändert worden.
Ich pflege die Änderungen im ersten Beitrag nach. Wenn es sich jemand kopiert sollte es fehlerfrei laufen. Dafür mache ich das.

Es gibt mittlerweile bestimmt über 10 Versionen...das hier ist ein BEISPIEL! Kann man so benutzen wie es ist...oder sich selbst abändern. Wie man es gerne möchte. Oder man lässt es bleiben und erfindet das Rad für sich neu. Muss jeder selber wissen.

Und was ist unübersichtlich? Wer sich das vorher kopiert hat...der kopiert es einfach neu. Wer sich das abgeändert hat...muss ggf. genauer hinschauen. Ich verstehe das Problem nicht.

Sorry...aber solche Kommentare nerven und da überlege ich mir das nächstes Mal 2x ob ich ein Beispiel hier veröffentliche...

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

curt

Können wir es bitte sachlich besprechen?

Ich sehe tatsächlich ein Problem. Es reicht ja offensichtlich nicht, Code aus dem ersten Beitrag zu kopieren. Selbst dort sind schon mehrere Edits, die man dann schrittweise immer neu nachvollziehen muss.

(Bitte meinen Beitrag nicht als Angriff missverstehen.)
RPI 4 - Jeelink HomeMatic Z-Wave

Wolle02

Auch wenn es Off Topic wird, möchte ich hier kurz bismosa zur Seite springen.
Man sollte sich vor Augen führen, dass dieser Thread hier im Bereich "Codeschnipsel" angesiedelt ist und es sich um kein offizielles Modul handelt, das einen Maintainer hat. Da hat bismosa völlig Recht, dass hier jeder für sich selbst gefordert ist.
Ich fände es wirklich sehr, sehr schade, wenn solche Codeschnipsel hier nicht mehr gepostet würden, weil die Leute fürchten dann zum Maintainer durch die Hintertüre gemacht zu werden, obwohl sie das vielleicht gar nicht wollen, sondern nur eine bestimmte Lösung präsentieren wollten.

<Off Topic off>

bismosa

Hallo,
@curt
natürlich reicht es aus den Code aus dem ersten Beitrag zu kopieren...
Ich habe nach einer Nachfrage noch eine "alternative" Variante mit hinzugefügt....ansonsten die Anpassungen immer direkt im Code vorgenommen...also aus meiner Sicht kein Problem.

Edit3 habe ich nur als Hinweis, damit diejenigen die es bereits laufen haben wissen, dass es eine Anpassung gab.
Ich habe nun noch einen Link zum entsprechenden Beitrag ergänzt. Das hatte ich vorhin vergessen.

Wie schon mal geschrieben...du kannst das auch gerne ins Wiki stellen...ich werde hier nur den Code auf der ersten Seite pflegen.

@Wolle02
Du hast recht. Das wird hier wirklich zu Off Topic.
Als offiziellen Maintainer würde ich mich hier nicht sehen. Aber wenn man ein Beispiel postet sollte man es nach Möglichkeit auch aktuell halten. Das versuche ich auch umzusetzen, damit man nicht seitenweise Beiträge lesen muss.

Ich nehme nach wie vor gerne Verbesserungsvorschläge (für den Codeschnipsel) entgegen. Perfekt ist das bestimmt nicht...aber es funktioniert scheinbar bei mehreren gut.

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

curt

Zitat von: bismosa am 18 Januar 2019, 16:58:03
Ich nehme nach wie vor gerne Verbesserungsvorschläge (für den Codeschnipsel) entgegen. Perfekt ist das bestimmt nicht...aber es funktioniert scheinbar bei mehreren gut.

Und das Ergebnis ist ja auch wirklich beeindruckend. (Wenn es anders wäre, würden wir doch gar nicht darüber reden.) Ich gehe mal bzgl. Wiki in mich, also ob ich das nicht nur jetzt, sondern auch mittelfristig leisten kann.

So, nun genug des OT.
RPI 4 - Jeelink HomeMatic Z-Wave