Schrolli91 / BOSWatch

Python Script to process input data from rtl_fm and multimon-NG - multiple Plugin support
https://bwcc.boswatch.de
GNU General Public License v2.0
132 stars 60 forks source link

Telegramm Googelapi nicht gültig ? error #379

Closed Muppet01 closed 6 years ago

Muppet01 commented 6 years ago

Bei Fragen und Problemen zu BOSWatch oder Plugins bitte unten gennante Informationen angeben:

flothi commented 6 years ago

Hast du die Logs mitlaufen? Falls ja, bitte mal den Ausschnitt senden, wo der Abruf stattfindet. Es gibt eine RIC mit Navidaten?

Muppet01 commented 6 years ago

Hab den Log angepasst, sorry ist viel ausgeX´t

Auszug aus dem LOG:

Muppet01 commented 6 years ago

sorry wollte das nicht abschließen..

intressant ist der hinweis in der Detail_map.png:

The Google Maps Platform server rejected your request. The provided API key is invalid.

der API key ist aber gültig..

wie kommst du auf die Navi RIC?

flothi commented 6 years ago

In der Config wird nach RICforLocationAPIKey sowie dem API-Key selber gefragt; ohne die RIC, wo die Ortdaten drin stehen, kann logischerweise auch keine Auswertung erfolgen.

Muppet01 commented 6 years ago

Da stimme ich Dir zu, beides ist aber angegeben, und die Entscheidung ob Bilder gezogen werden fällt in der Telegramm.py durch die Auswertung RICforLocationAPIKey= Ric oder bin ich da falsch? die Ortsdaten kommen doch durch die 'Adresse' / msg

flothi commented 6 years ago

Das ist richtig - passt denn das Parsen der Adresse? Also das Format, in dem die Adresse angegeben wird.

Muppet01 commented 6 years ago

Puh jetzt geht es ins eingemachte, ich kann nur sagen das es bis mitte des Jahres einwandfrei lief, ( bei uns ist nicht ganz so viel los 👍 ) da brauche ich etwas Unterstützung, wie kann ich das am besten nachvollziehen?

habe mir die daten in ein externes log geschrieben und per Http extern getestet >wird einwandfrei gefunden. ich habe den eindruck das hier was mit dem Telegram-bot nicht passt.. nur warum jetzt? es wurde nichts angepasst.

flothi commented 6 years ago

poste mal bitte den Text dieser RIC, gerne mit ausge-x-ten Daten, dann versuche ich mal reinzuschauen

Muppet01 commented 6 years ago

b1Musterstadt Ortsteil Dorfstraße 47 Rauchentwickl.XPQ21 Filter ist 2:5 auf *

Übergabe an Maps ist: Stadt +Ortsteil +Straße Hnr.

flothi commented 6 years ago

OK - das ist mein Fehler:

15.10.2018 20:52:15 - Telegram        [DEBUG   ] unknown error
Traceback (most recent call last):
  File "/opt/boswatch_master/plugins/Telegram/Telegram.py", line 97, in run
    address = "+".join(data["msg"].split(')')[0].split('/',1)[1].replace('(',' ').split())
IndexError: list index out of range

Den Fehler sehe ich bei dir nicht - die Datenfelder sind mittels * voneinander getrennt nach dem Schema "Einsatzcodierung*Stadt*Ortsteil*StrasseHNR*Stichwort" - korrekt?

Muppet01 commented 6 years ago

Den Fehler sehe ich bei dir nicht - die Datenfelder sind mittels voneinander getrennt nach dem Schema "EinsatzcodierungStadtOrtsteilStrasseHNR*Stichwort" - korrekt?

Ja ist so, intresannt finde ich ich wen ich manuell prüfe mit: http://maps.googleapis.com/maps/api/staticmap?markers=3Stadt +Ortsteil +straße Hnr&size=240x320&scale=2&maptype=hybrid&zoom=17&key=XXXXXXXXXXXXXXXXXXXXXXXXXX bekomme ich das bild.. somit müssten meine Daten safe sein..

flothi commented 6 years ago

Dann erstelle ich mal nen neuen String für Adresse, mal sehen, ob es damit klappt - wird aber wohl heute nichts mehr :-)

Muppet01 commented 6 years ago

address = "+".join(data["msg"]).split("*")[2:5] hatte noch replace eingefügt, und hier entfernt..

ich glaube das es sich hier um eine Rückmeldung von Telegramm handelt da es sich nicht um echte Bilder handelt.. ( Inhalt u. größe passen nicht) ,

flothi commented 6 years ago

Also, die Adresse kriege ich extrahiert, mit leicht angepasstem Code:

address = "+".join(data["msg"].split("*")[2:5])
logging.debug("Retrieved following address: %s", address)

Die URL habe ich auch gefixt, das join hat ein Zeichen in den Key gepackt, der da nicht hingehört: url = "http://maps.googleapis.com/maps/api/staticmap?markers=" + address + "&size=480x640&maptype=roadmap&zoom=16&key=" + GoogleAPIKey

Aktuell meckert aber google "This site can't load google maps correctly" - da bin ich noch dran //Edit OK, bei nem Limit auf 1 Request / Tag in der kostenlosen Version dauert das Ausprobieren etwas länger :-D

Muppet01 commented 6 years ago

Guten Morgen, hab gerade die Änderungen angepasst, filtern passt, aber es bleibt die Meldung: BadRequest: Image_process_failed ,

OK, bei nem Limit auf 1 Request / Tag in der kostenlosen Version dauert das Ausprobieren etwas länger :-D ….. stimmt.. Verdächtig

Update, Bilder kommen! nur Telegramm mosert: ApiError: REQUEST_DENIED (This IP, site or mobile application is not authorized to use this API key. Request received from IP address XXX.XXX.XX.XXX, with empty referer)

LOG:

Schrolli91 commented 6 years ago

Evtl wäre hier OSM die bessere Alternative, nachdem Google ja sein Lizenzmodell umgestellt hat, was Maps angeht....

Kostenlos ist da nicht mehr viel zu holen :-P

Edit: Siehe: https://wiki.openstreetmap.org/wiki/Static_map_images

flothi commented 6 years ago

Ich eruiere gerade Nominatim und Co - derzeit habe ich einen Anbieter mit 2500 requests/Tag für 0 Euro im Blick

flothi commented 6 years ago

Bilder kommen mit dem angepassten Code?

Das dritte Bild nutzt eine mir noch nicht bekannte Funktion von Telegram - die muss ich mir nachher nochmal anschauen.

Muppet01 commented 6 years ago

Moin, ohne selbiges Bild sind die Error auch weg, habe mich erst einmal auf die zwei Konzentriert.. werde mir das noch mal ansehen, vielleicht gibt es bei einem Relase 3.0 ja eine neue Idee?

muss mich bei Gockel mal schlau machen ob geolocation bei Free enthalten sind..

flothi commented 6 years ago

Ich habs auch gerade nochmal getestet; das dritte Bild ist eine Funktion ähnlich "Standort senden" - aber auch das braucht eine gültige geodecode-Lizenz von google, die offensichtlich auf 1/d runtergeschraubt ist.

Alternativen sind Nominatim (und Konsorten) bzw. kostenpflichtige Google-Dienste. Das Problem entfällt jedoch komplett, wenn Koordinaten mitgeschickt werden.

Muppet01 commented 6 years ago

Zitat:Das Problem entfällt jedoch komplett, wenn Koordinaten mitgeschickt werden.????

die daten aus der RIC? oder als "start" Koordinaten?

wie hast du die Daten mit übergeben?

flothi commented 6 years ago

Es gibt bei uns einige RIC, die von Navis ausgewertet werden; da steht in der Alarmnachricht direkt die Koordinate mit Lat/Lon drin

PeterLaemmle commented 6 years ago

Das neue Preismodell stellt den Nutzern pro Monat statische Karten im Wert von 200$ kostenfrei zur Verfügung. Diese 100.000 Karten reichen dann für 50.000 Alarme. Vermutlich für die meisten der Nutzer hier ausreichend.

Ich hab mal noch Routing per Overlay in die Übersichtkarte integriert. Hat da jemand Interesse? Damit schafft man dann aber nur noch 20.000 Alarme im Monat...

Muppet01 commented 6 years ago

Hat da jemand Interesse? aber immer doch...

Grüße Muppet01

flothi commented 6 years ago

@PeterLaemmle Das Problem ist weniger die statische Karte, eher das Geodecoding

PeterLaemmle commented 6 years ago

Auch wenn ich pro Aufruf zwei Karten, eine Route und einmal Koordinaten erstellen lasse, reicht das für mehrere tausend pro Monat oder überseh ich da was bei dem neuen Preismodell?

flothi commented 6 years ago

Also wenn ich bei mir ins Dashboard gehe steht da für Geolocation wie für Static maps 1 Request/Tag - aber evtl übersehe auch ich was :-)

PeterLaemmle commented 6 years ago

Abrechnung aktiviert? Damit bekommt man ein Guthaben von 200$ bzw. 170€ im Monat für die API.

flothi commented 6 years ago

Negativ, ohne Abrechnung - aber gut zu wissen. Nichtsdestotrotz sollten wir a) nach Alternativen schauen und b) das geodecoding zentralisieren

Schrolli91 commented 6 years ago

@flothi Für BW3 wäre es evtl sogar sinnvoll, das Geocoding/Image-Gen komplett aus den Plugins zu entfernen und zentral abzulegen. Dann hätte jedes Plugin Zugriff auf Geodaten/Karten Bilder etc. falls diese aus den Alarmdaten zu beschaffen/generieren waren.

flothi commented 6 years ago

@Schrolli91 Genau das war meine Intention mit "zentralisieren" ;-)

Muppet01 commented 6 years ago

Ich habe da noch eine Frage:

Ich hab mal noch Routing per Overlay in die Übersichtkarte integriert. Hat da jemand Interesse? Damit schafft man dann aber nur noch 20.000 Alarme im Monat...

was hast Du genau angepasst um die Geocoding anzeigen zu lassen?

flothi commented 6 years ago

Was meinst du mit Anpassung, um Geocoding anzeigen zu lassen?

Muppet01 commented 6 years ago

Lan/ Lot könne ja auch über die Maps Daten bezogen werden, nur die Umsetzung ist mir noch etwas unklar. wie hast Du die daten mit übergeben?

Grüße

Muppet01

PeterLaemmle commented 6 years ago

Mit https://github.com/Schrolli91/BOSWatch/pull/382 hab ich das Routing integriert. Freu mich auf eure Rückmeldungen.

Schrolli91 commented 6 years ago

Sehe ich das Richtig - das eigentliche Problem ist gelöst? Zusätzliches Feature dann per Pull? Wenn dem so ist, bitte im Pull dazu diskutieren und hier closen - Danke

flothi commented 6 years ago

Dem ist so, daher closed