Ankündigung

Einklappen
Keine Ankündigung bisher.

Traffic Plugin - Support Thread

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Traffic Plugin - Support Thread

    In Kürze gibt es im DEV ein Google Directions Plugin für Verkehrsinformationen.
    Das hier dient als Support Thread.

    Das Plugin baue ich noch sukzessive aus.

    https://github.com/smarthomeNG/plugi...evelop/traffic - sollte auch mit v 1.2 schon gehen

    Blog-Artikel zum Plugin:
    - https://www.smarthomeng.de/das-traff...nes-staualarms
    - https://www.smarthomeng.de/geozonen-...network-plugin
    - https://www.smarthomeng.de/google-ma...-smartvisu-2-9
    Zuletzt geändert von psilo; 02.11.2018, 08:19.

    #2
    Bin gespannt, genau das was ich brauche.

    Gruss,

    Stefan
    Sonos

    Kommentar


      #3
      Ich nutze das derzeit via Logik.. Die Position bedate ich via EgiGeoZone und das Network Plugin... dokumentiere ich demnächst mal.

      Jetzt erstmal noch mehr Werte aus dem JSON ins Plugin bringen.
      Zuletzt geändert von psilo; 08.02.2017, 05:49.

      Kommentar


        #4
        Update: ich habe das Teil jetzt nochmal gehörig aufgebohrt, so dass man den "mode" übergeben kann und die Fahrthinweise / Warnings mitbekommt.

        Kommentar


          #5
          Neues Update mit "duration_in_traffic" ist da...

          Kommentar


            #6
            Hallo Psilo,

            könntest Du bitte mal deine "geozone_entry.py" posten. Verstehe leider noch nicht so ganz wie die Daten vom HTTP Get ins SH kommen.
            Ich habe das NW Plugin bisher noch nicht benutzt. Die iOS App Geofency macht nur HTTP post requests. Daher würde ich da noch ein PHP Script dazwischen packen.

            PHP-Code:
            http://<local ip>:<port>/logic|GeoZoneEntry|${deviceId},${zone},${latitude} ,${longitude},${accuracy}

            Usage nw Pluginlogic|logic_name|value --> geozone_entry.py   &  value = ${deviceId},${zone},${latitude} ,${longitude},${accuracy}

            Split ist klaraber wie komme ich in der Logik an die Werte... 

            Kommentar


              #7
              Hier meine Logik:

              plugin.conf:
              Code:
              [nw]
                  class_name = Network
                  class_path = plugins.network
                  ip = 192.168.178.100
                  tcp = yes
                  http = 8888
              logic.conf:
              Code:
              [GeoZoneEntry]
                  filename = geozone_entry.py
                  nw = yes
              
              [GeoZoneExit]
                  filename = geozone_exit.py
                  nw = yes
              geozone_entry.py
              Code:
              parts = []
              parts = value.split(',')
              sh.location.my.prev_zone(sh.location.my.zone())
              if parts[0] == '<device_id>' and sh.location.my.prev_zone() != parts[1]:
                  sh.location.my.zone(parts[1])
                  sh.location.my.lat(parts[2])
                  sh.location.my.lon(parts[3])
                  sh.location.my.exit_date('')
                  sh.location.my.entry_date(sh.now().strftime("%Y-%m-%d %H:%M:%S"))
                  if sh.settings.front_gate():
                      sh.outside.gate.driveway.open.full(1)
                  if sh.settings.garage_gate() and sh.outside.gate.garage.state() != 1:
                      sh.outside.gate.garage(1)
              geozone_exit.py:
              Code:
              parts = []
              parts = value.split(',')
              if parts[0] == '<device_id>':
                  sh.location.my.prev_zone(sh.location.my.zone())
                  sh.location.my.exit_date(sh.now().strftime("%Y-%m-%d %H:%M:%S"))
                  sh.location.my.entry_date('')
                  sh.location.my.zone("Unterwegs")
              Zuletzt geändert von psilo; 08.02.2017, 05:48.

              Kommentar


                #8
                Mh, das ist ja einfach. Auf die Idee das einfach value im Plugin zur Verfügung steht war ich nicht gekommen ;-)
                Danke.

                Kommentar


                  #9
                  Nur als Idee, da ich im Moment mit dem Plugin noch nicht wirklich was Anfangen kann!
                  Ich hab mal irgendwo gelesen, das es einen Google Wecker geben soll. Der Wecker weckt einen früher, je nach Verkehrslage oder schlechten Wetterbedingungen.
                  Wäre schön wenn das Plugin das mitbringen könnte ;-))

                  Kommentar


                    #10
                    Knx fan bau doch einfach ne Logik und nutze das Plugin. So mache ich das auch: wenn in meiner via egigeozone übertragenen zone der string arbeit steht, prüfe ich im minutentakt die fahrzeit im verkehr und schicke bei überschreitung von 40 minuten eine pushbullet nachricht. ich bin dagegen, aus plugins die eierlegende wollmilchsau zu machen. plugins sind dafür da, sinnvoll kombiniert zu werden und hier ist die logik das paradebeispiel

                    Code:
                    ...
                    if 'Arbeit' in sh.location.my.zone() and sh.settings.warning_pushbullet() and sh.location.my.travel_time.in_traffic() >= 2400 < sh.location.my.travel_time.in_traffic.prev_value() :
                        sh.pushbullet.note("Alarm: Verkehr", "%s Min. Fahrzeit nach Hause!" % (sh.location.my.travel_time.in_traffic() / 60))

                    Kommentar


                      #11
                      Ein kleiner Blog-Artikel zur Pluginnutzung findet sich unter https://www.smarthomeng.de/das-traff...nes-staualarms.

                      Kommentar


                        #12
                        Hi zusammen,

                        vorab einmal vielen Dank für das coole Plugin! Es liefert mir seit gestern verlässliche Fahrzeiten zur Arbeit und zurück.
                        Allerdings bin ich über eine Kleinigkeit gestolpert bei der ich nicht sicher bin ob es ggfs. noch ein kleiner Bug ist. Mein SH-Item-Attribut "summary" wird mit dem Text befüllt (z.B.) "42 km in 666 min". Bei mir waren die beiden Daten vertauscht. Korrekt wäre gewesen "666 km in 42 min". Ich habe mir damit beholfen, dass ich in der Zeile (Logik)

                        Code:
                        summary = route['summary']+"%.1f km in %.0f min" % (round(route['duration_in_traffic']/60,2), round(route['distance']/1000,2))
                        geändert habe nach
                        Code:
                        summary = route['summary']+"[B]%.1f min für %.0f km[/B]" % (round(route['duration_in_traffic']/60,2), round(route['distance']/1000,2))
                        Ist das ein Fehler in der Version 0.1 oder habe ich was falsch verstanden?

                        Grüße,
                        Thomas

                        Kommentar


                          #13
                          Hi,

                          schön, dass das Plugin nicht nur mir hilft

                          das ist echt ein "bug" in der Logikbeschreibung..

                          in meiner live Logik steht auch ein
                          Code:
                          summary = route['summary'] + ": %.1f km in %.0f min" % (round(route['distance'] / 1000, 2), round(route['duration_in_traffic'] / 60, 2))
                          PS: den hier kennst Du? https://www.smarthomeng.de/google-ma...-smartvisu-2-9 (auch die in der einleitung erwähnten weiteren artikel beachten!)

                          PS2: Beispiellogik ist im DEV korrigiert.. Die 3 Artikel aus dem Blog sind im Beitrag Nr 1 dieses Threads verlinkt!
                          Zuletzt geändert von psilo; 02.11.2018, 08:21.

                          Kommentar

                          Lädt...
                          X