Neues Modul Verkehrsinfo

Begonnen von martins, 29 Juni 2016, 22:21:38

Vorheriges Thema - Nächstes Thema

bjoernbo

@martins, dass Modul ist klasse. Ich habe es jetzt seit einer Woche im Einsatz und muss, sagen wow!!!
DANKE für das Modul! Sehr zuverlässig!

Neben der Textausgabe lasse ich mir nun das ganze auch grafisch anzeigen. Hat nichts mit deinem Modul zu tun, aber es pass zum Thread.

In meinem FTUI habe ich einen Menüpunkt > Verkehrskarte mittels der GoogleAPI eingebunden.



Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Martin W

Zitat von: martins am 28 Dezember 2016, 02:59:48
Du könntest statt für jede Autobahn einzeln ein Device anzulegen, auch ein Device für das Bundesland NRW anlegen und dann mit dem Attribut include_filter nur die Autobahnen einschließen die du benötigst.

define nrw Verkehrsinfo https://www.verkehrsinfo.de/httpsmobil/index.php?c=staulist&bl=260&lat=&lon= 600
attr nrw filter_include A1|A2|A42



Hallo,

vielleicht kann mir jemand weiterhelfen, ich stehe auf dem Schlauch.
Wenn ich als Filter z. Bsp.
attr nrw filter_include A6
eingebe bekommt ich auch A61, A650 etc. da er das wohl als "String enthält"  oder "String beginnt" interpretiert.
Wie kann ich den dem Filter klarmachen, dass der Ausdruck nicht Stringanfang ist sondern ein regular expression?
Ich habe mir schon den Wolf gesucht und leider nichts gefunden.

Vielen Dank im Voraus.

Gruß
Martin

martins

Zitat von: mwesterm am 08 Januar 2017, 09:30:01
Hallo,

vielleicht kann mir jemand weiterhelfen, ich stehe auf dem Schlauch.
Wenn ich als Filter z. Bsp.
attr nrw filter_include A6
eingebe bekommt ich auch A61, A650 etc. da er das wohl als "String enthält"  oder "String beginnt" interpretiert.
Wie kann ich den dem Filter klarmachen, dass der Ausdruck nicht Stringanfang ist sondern ein regular expression?
Ich habe mir schon den Wolf gesucht und leider nichts gefunden.

Vielen Dank im Voraus.

Gruß
Martin


Hallo, probiere mal folgendes:
attr nrw filter_include A6[a-zA-Z]
Dies ist technisch bedingt beim parsen der Meldungen nötig, man kann es als Zeilenende sehen anstatt von RegEx $

vg Martin

Martin W

Super, vielen Dank!!
Gruß
Martin

Martin W

Zitat von: bjoernbo am 07 Januar 2017, 22:37:03

In meinem FTUI habe ich einen Menüpunkt > Verkehrskarte mittels der GoogleAPI eingebunden.

Hallo,
kannst Du sage, welches Widget du dafür benutzt? iframe läuft (scheinbar) nicht mehr und auch das javascript-Wdget wird wohl von nesges im Augenblick nicht mehr gepflegt.
Vielen Dank.

Gruß
Martin

bjoernbo

Doch, iframe läuft noch, allerdings musst Du dir eine Brücke bauen. Ich habe zunächst eine Datei googleTraffic.html erstellt. In dieser ist die eigentliche Karte. Sprich die Geodaten, der KEY etc. Rufst Du die Seite "Standalone" auf, wird dir die Karte auch angezeigt.
Damit die Karte nun im FTUI angezeigt wird, verwendest du nun das Widget > iframe und gibst als 'src' den Pfad und den Namen der googleTrafic.html an. Danach wird es dir auch im FTUI angezeigt.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

bjoernbo

googleTraficMaps.HTML

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      html, body { height: 100%; margin: 0; padding: 0; }
      #map { height: 100%; }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script type="text/javascript">
var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 51.47, lng: 7.08},
    zoom: 12
  });
  map.setMapTypeId(google.maps.MapTypeId.TERRAIN);
  var trafficLayer = new google.maps.TrafficLayer();
  trafficLayer.setMap(map);
  var marker = new google.maps.Marker({
    position: {lat: 51.48, lng: 7.25},   
    map: map,
  });
var marker = new google.maps.Marker({
    position: {lat: 51.48, lng: 7.12},   
    map: map,
  });
var marker = new google.maps.Marker({
    position: {lat: 51.48, lng: 7.02},
    map: map,
  });
}

    </script>
    <script async defer
      src="https://maps.googleapis.com/maps/api/js?key=XXXXXXXXXXXXXXX&callback=initMap">
    </script>
</body>
</html>


Einbindung in FTUI

v3_Trafffic.html

Zitat<li data-row="1" data-col="1" data-sizex="10" data-sizey="5">   
      <div data-type="iframe"
                data-fill="yes"
      data-src="googleTrafficMaps.html">
  </div>
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Tobias

Hi bjoernbo,
vielen Dank für den code ;) funktioniert auf anhieb.
In welchen Intervallen aktualisiert sich denn die Karte? Oder muss man das noch irgendwie angeben?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Martin W

Hallo bjoernbo,

auch von mir ein Dankeschön!!
Funktioniert super.

Gruß
Martin

daheim

Hallo martins,

ich habe mich heute dran gesetzt und muss sagen, dein Modul ist genau das was ich gesucht habe.
Vielen Dank für deine super arbeit.

Eine Frage habe ich dennoch, ich möchte gerne den Inhalt von message im state haben, kein Problem über stateFormat.
Leider ist das etwas unübersichtlich da die Meldungen vordlaufent sind, ein Zeilenumbruch nach jeder Meldung würde dieses vereinfachen.

Wie kann ich das umsetzen?


Es liegen um 21:09 für , 2 Staumeldungen vor: A40, zwischen Duisburg-Rheinhausen und Duisburg-Häfen in beiden Richtungen Brückenarbeiten, Stau zu erwarten, zulässige Höchstgeschwindigkeit von 80 km/h, Baustelle auf einer Länge von 2,5 km, vorübergehende Begrenzung der Breite auf 7,50 m, 1 von 3 Fahrstreifen gesperrt, bis 30.01.2018 Mitternacht Brückeninstandsetzung. A40, Ruhrschnellwegtunnel Nachtbaustelle, Richtungsfahrbahn gesperrt, bis 10.01.2017 05:00 Uhr.


Viele Grüße
Daniel

martins

@daheim

Teste mal folgendes, ob dies dein gewünschtes Ergebnis bringt:
attr <devicename> stateFormat {my $tmp=Verkehrsinfo_GetData('<devicename>');; $tmp=~s/\n/<br>/g;; $tmp=~s/- -//g;; return $tmp;;}

vg martin

daheim

Hallo Martin,

das wars!!!! Vielen Dank

VG
Daniel

paul79

Hallo,

ich habe ein update für das widget.

Gruß Paul
FHEM5.7 auf Pi3
Busware CUL433 (IT), JeeLink Lacrosse, HM-MOD-RPI-PCB, HM, TabletUI

redlav

Hallo,

vielen Dank für das tolle Modul/Widget.

Könnte man den Interval nicht als Attribut oder Reading ablegen und von außen modifizierbar machen?

z.b. set <devicename> interval <zahl>

Hintergrund meiner Frage ist die Tatsache, das ich die Infos morgens und nachmittags benötige und sonst eigentlich
eher nicht. Ein kleinerer Intervall morgens und nachmittags würde dann mehr Sinn machen als 7*24 informationen
bereitzustellen, die keiner braucht.

Das ginge natürlich auch mit einem defmod, finde ich aber nicht so elegant...

Gruß Norbert

bjoernbo

Super das es klappt! Eure Rückfragen zur Karte. Die Karte aktualisiert sich eigentlich von alleine, da die definierte Seite in iFrame geladen wird. Ich musste bisher nur eine aktuell von Hand anstoßen.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -