Blitzer anzeigen

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

Vorheriges Thema - Nächstes Thema

binford6000

Zitat von: lapidu am 17 Oktober 2018, 11:41:10
Wie bekomme ich Reading "PushText"  in meinem dummy hin?

Hier mal meine sub getBlitzerText($):

sub getBlitzerText($){
    my $BlitzerDev = shift;
    my $Text="<html> <p align='left'>";
# Text für Pushnachricht:
    my $PushText;
    for(my $i=0;$i<100;$i++){
        my $num = sprintf("%02d", $i);
        my $Entf = ReadingsVal($BlitzerDev,$num."Entfernung",undef);
last if !defined $Entf;
my $Ort = ReadingsVal($BlitzerDev,$num."Ort",".");
if ($Ort eq "."){$Ort = " "};
my $building = ReadingsVal($BlitzerDev,$num."Building",0);
if ($building eq "."){$building = " "};
        my $Strasse = ReadingsVal($BlitzerDev,$num."Strasse"," ");
        my $VMax = ReadingsVal($BlitzerDev,$num."VMax"," ");
        if (not $Text eq "<html> <p align='left'>"){
            $Text = $Text."\n <br>";
}
elsif (not $PushText){
            $PushText = $PushText."\n";
        }
        $Text = $Text."$num $Ort $Strasse $building Max $VMax Km/h";
# (".sprintf("%.1f", "$Entf")."km) !! aus $Text entfernt
        $PushText = $PushText."$num $Ort $Strasse $building Max $VMax Km/h\n\n";
    }
$Text = $Text."</p></html>";
    fhem("setreading $BlitzerDev Text $Text");
    fhem("setreading $BlitzerDev PushText $PushText") if ($PushText);
}


VG Sebastian

lapidu

ich hab genau das gleich drin.

Zeigt er bei deinem dummy bei den Readings PushText an?
Bei mir nur Text

binford6000

Zitat von: lapidu am 17 Oktober 2018, 12:54:17
ich hab genau das gleich drin.

Zeigt er bei deinem dummy bei den Readings PushText an?
Bei mir nur Text

Ja tut er:
setstate blitzer 2018-10-17 10:00:27 PushText 00 Ort Strasse   Max 100 Km/h\
setstate blitzer 2018-10-17 10:00:27 Text <html> <p align='left'>00 Ort Strasse   Max 100 Km/h</p></html>


Musste es aus dem save File rauskopieren da in meiner Umgebung momentan keine Blitzer stehen  ;)
VG Sebastian

binford6000

ABER: Die Readings sehen im Webfrontend gleich aus. Ein Browser zeigt die HTML-tags nicht an  ;)

lapidu

Das Problem bei mir ist das ich kein Reading PushText habe.
Wie kann ich das dem dummy hinzufügen?

binford6000

Zitat von: lapidu am 17 Oktober 2018, 13:21:48
Das Problem bei mir ist das ich kein Reading PushText habe.
Wie kann ich das dem dummy hinzufügen?
Das macht doch
    fhem("setreading $BlitzerDev PushText $PushText") if ($PushText);
in der  sub getBlitzerText($). Siehe oben.
VG Sebastian

maseb

Zitat von: binford6000 am 07 August 2018, 14:55:01
Hallo bismosa,
wirklich tolle Arbeit! Funktioniert bestens  :)

Ich hole mir die Koordinaten aus meinem ROOMMATE:
defmod blitzer dummy
attr blitzer userattr maxkm
attr blitzer icon ampel_rot
attr blitzer maxkm 50
attr blitzer room 90_Verkehr
attr blitzer stateFormat Text
attr blitzer userReadings lat {ReadingsVal('rr_Sebastian','locationLat','');;;;},long {ReadingsVal('rr_Sebastian','locationLong','');;;;}


Diese werden von owntracks aktuell gehalten. So habe ich immer die Blitzer in meiner unmittelbaren Umgebung
zur Verfügung und bekomme sie via push-Nachricht bei Eintreffen/Verlassen eines Standorts.
Oder periodisch wenn ich an keinem bekannten Standort (underway) bin  ;)

]

Vielen Dank und stay cool...  8)

VG Sebastian


Hallo Sebastian,

wie hast du das gemacht das die sub getBlitzer() die Werte für lat long nun aus den readings des blitzer dummys liest?

Es sucht doch die Werte in den attr vom blitzer dummy.

mit InternalVal anstelle von attrVal habe ich keinen Erfolg.

Grüße
Rudi
CUL mit EM 1000 S/IR und EM 1000 HSM

binford6000

Moin Rudi,
im blitzer dummy folgende userReadings gesetzt:
lat {ReadingsVal('rr_Sebastian','locationLat','');;},
long {ReadingsVal('rr_Sebastian','locationLong','');;},


Und dann in der sub getBlitzer() folgendes geändert:
my $lat = ReadingsVal($BlitzerDev,"lat",undef);
my $lng = ReadingsVal($BlitzerDev,"long",undef);


VG Sebastian

ThomasMagnum

Hallo zusammen,

ich habe diese "Funktion" seit einigen Monaten im Einsatz und sie funktioniert sehr gut - danke dafür.

Da ich beruflich sehr viel auf Achste bin und immer mal wieder woanders bin, möchte ich mir nun diese Funktion so umbauen, bzw. eine zweite erstellen, mit der ich dies bei Bedarf für meinen aktuellen Aufenthaltsort nutzen kann. Ich möchte hierzu meine aktuellen Locationdaten verwenden. Leider bietet sich hier nur die Möglichkeit einen Kartenausschnitt mit "Eckpunkten" zu definieren.
Gibt es eine Möglichkeit aus der aktuellen Location einen Kartenausschnitt um diese Position mit einem definierten Radius zu berechnen? Oder aber gibt es evt. die Möglichkeit eines API Aufrufs bei atudo in Form eines Radius um eine Position?

Ich konnte leider keine Information zu deren API finden.

Vielen Dank für jeden Hinweis.

Gruß, Thomas

P.S.: diese Idee soll nur bei Bedarf aufgerufen werden und nicht wie das in diesem Thread beschriebene per "at".

somansch

Vielen Dank vorab für diesen Code!

Jedoch werden bei mir die Orts- und Straßennamen nicht aufgelöst. Habe 1:1 den Code aus dem ersten Post übernommen, bekomme zwei POIs, jedoch keine Ortsbeschreibung :-\

Hier aus dem Log:
2018.12.23 17:43:44 1: PERL WARNING: "my" variable $out masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 420.
2018.12.23 17:43:44 1: PERL WARNING: "my" variable $Stadtteil masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 485.
2018.12.23 17:43:44 1: PERL WARNING: "my" variable $Stadt masks earlier declaration in same scope at ./FHEM/99_myUtils.pm line 498.

bismosa

Hallo,
Sorry...gerade wenig Zeit. ist die Entfernung vielleicht zu hoch? Zum testen Stelle ich immer auf 99km um mir alle anzuzeigen...
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, ...

somansch

Zitat von: bismosa am 23 Dezember 2018, 18:19:52
Hallo,
Sorry...gerade wenig Zeit. ist die Entfernung vielleicht zu hoch? Zum testen Stelle ich immer auf 99km um mir alle anzuzeigen...
Gruß
Bismosa

Habe es mal auf 99km gestellt. Hier die Readings:
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_backend 0-10922398
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_confirm_date 0000-00-00 00:00:00
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_content 4629456640
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_counter 0
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_create_date 2018-12-23 18:38:37
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_gps_status -
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_id 2988916073
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_info {"count_180d":"0"}
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lat 48.142387
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lat_s 48.1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lng 11.560817
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lng_s 11.6
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_polyline
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_street Elisenstraße
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_type 1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_vmax 40
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_backend 0-10922301
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_confirm_date 0000-00-00 00:00:00
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_content 4629388678
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_counter 0
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_create_date 2018-12-23 17:52:25
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_gps_status -
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_id 2988915938
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_info {"count_180d":"0"}
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lat 48.206104
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lat_s 48.2
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lng 12.140827
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lng_s 12.1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_polyline
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_street B15
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_type 1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_vmax 70
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_backend 0-10920895
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_confirm_date 2018-12-23 18:49:22
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_content 4628704382
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_counter 3
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_create_date 2018-12-23 10:19:44
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_gps_status -
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_id 2988915554
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_info {"count_180d":"8"}
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lat 48.493763
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lat_s 48.5
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lng 11.204416
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lng_s 11.2
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_polyline
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_street B300
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_type 1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_vmax 80

somansch

Zitat von: somansch am 23 Dezember 2018, 18:55:19
Habe es mal auf 99km gestellt. Hier die Readings:
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_backend 0-10922398
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_confirm_date 0000-00-00 00:00:00
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_content 4629456640
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_counter 0
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_create_date 2018-12-23 18:38:37
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_gps_status -
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_id 2988916073
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_info {"count_180d":"0"}
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lat 48.142387
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lat_s 48.1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lng 11.560817
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_lng_s 11.6
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_polyline
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_street Elisenstraße
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_type 1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_01_vmax 40
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_backend 0-10922301
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_confirm_date 0000-00-00 00:00:00
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_content 4629388678
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_counter 0
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_create_date 2018-12-23 17:52:25
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_gps_status -
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_id 2988915938
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_info {"count_180d":"0"}
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lat 48.206104
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lat_s 48.2
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lng 12.140827
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_lng_s 12.1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_polyline
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_street B15
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_type 1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_02_vmax 70
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_backend 0-10920895
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_confirm_date 2018-12-23 18:49:22
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_content 4628704382
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_counter 3
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_create_date 2018-12-23 10:19:44
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_gps_status -
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_id 2988915554
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_info {"count_180d":"8"}
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lat 48.493763
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lat_s 48.5
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lng 11.204416
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_lng_s 11.2
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_polyline
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_street B300
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_type 1
setstate httpmod_blitzer 2018-12-23 18:53:11 pois_03_vmax 80


Sorry, Layer 8 Error  ;D. Man muss natürlich über den at ansteuern, sonst wird ja die Routine nicht ausgeführt  :-X

bismosa

Moin!
Und welche readings sind im Dummy?

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, ...

somansch

Inzwischen läuft es ja auch bei mir  :). Vielen Dank für diesen Code!

Es gibt ja auch für Verkehrsinfos ein Modul. Dafür wiederum auch ein Widget für FTUI.

Wenn die Readings ähnlich zu den Verkehrsinfos wären, könnte man auch einfach ein Widget für die Blitzer in FTUI abbilden  8).

Welche Anpassungen wären nötig, um zusätzlich den "count" (Anzahl der Blitzer) als Reading zu bekommen? Weiterhin wäre "date_time" für den Zeitstempel und eine Nummerierung beginnend bei "1", z.B. b_1_, b_2_ schön. Hier mal die Readings von Verkehrsinfo als Grundlage:
2018-12-26 23:50:23   count           4
     2018-12-26 23:50:23   date_time       2018-12-26 23:50:23
     2018-12-26 23:50:23   e_1_head        Regensburg Richtung Holledau
     2018-12-26 23:50:23   e_1_msg         zwischen Pfaffensteintunnel und Regensburg-West (40) Unfall, linker Fahrstreifen blockiert, Stau, vorsichtig an das Stauende heranfahren
     2018-12-26 23:50:23   e_1_road        A93
     2018-12-26 23:50:23   e_2_head        Oberstdorf - Kempten
     2018-12-26 23:50:23   e_2_msg         zwischen Waltenhofen-Kuhnen und B12, A980, Waltenhofen in beiden Richtungen Ampelanlage außer Betrieb, bis 27.12.2018 07:00 Uhr
     2018-12-26 23:50:23   e_2_road        B19
     2018-12-26 23:50:23   e_3_head        Weiden - Regensburg
     2018-12-26 23:50:23   e_3_msg         in Höhe Schwandorf-Nord in beiden Richtungen alle Fahrbahnen geräumt
     2018-12-26 23:50:23   e_3_road        A93
     2018-12-26 23:50:23   e_4_head        Autobahndreieck Allgäu - Lindau
     2018-12-26 23:50:23   e_4_msg         zwischen Durach (2) und Waltenhofen in beiden Richtungen Ampelanlage außer Betrieb, bis 27.12.2018 07:00 Uhr
     2018-12-26 23:50:23   e_4_road        A980
     2018-12-26 23:50:23   message         Es liegen um 23:50 für Bayern, 4 Staumeldungen vor:
zwischen Pfaffensteintunnel und Regensburg-West Unfall, linker Fahrstreifen blockiert, Stau, vorsichtig an das Stauende heranfahren. zwischen Waltenhofen-Kuhnen und B12, A980, Waltenhofen in beiden Richtungen Ampelanlage außer Betrieb, bis 27.12.2018 07:00 Uhr. in Höhe Schwandorf-Nord in beiden Richtungen alle Fahrbahnen geräumt. zwischen Durach und Waltenhofen in beiden Richtungen Ampelanlage außer Betrieb, bis 27.12.2018 07:00 Uhr.
     2018-12-26 23:50:23   state           update 2018-12-26 23:50:23