Darstellung einer GoogleMap-Karte

Hallo,

ich bekomme bei der Installation bzw. Update des Module die Fehlermeldung aus dem Screenshot, egal ob ich über den Modulstore gehen oder direkt vom GitHub.

IPS 5.3 unter Linux

Was kann ich machen, um das Modul zu aktualisieren, entfernen geht nämliche leider auch nicht mit selber Meldung.

Danke im voraus

Hallo,

ich habe mal rasch bei mir das Modul installiert (auch auf akt. 5.2 testing) - kein Problem. Die GUID ist die korrekte GUID für das Modul.

tut mir leid, da kann ich nicht helfen, das hat aus meiner Sicht nichts mit dem Modul an sich zu tun.
Das ist eher was für @paresy

Gruß
demel

Danke für deinen Test.

Ich habs Problem jetzt unkonventionell beheben können, einfach den kompletten Ordner des Module gelöscht über den Store neu installiert, keien Fehlermeldung mehr.

Moin Zusammen,

ich bin seit Gestern glücklicher Besitzer von IP Symcon auf einem Raspberry und versuche nun vergeblich mir eine Map, über das hier beschriebene Modul, von Google anzeigen zu lassen. Ausser der Überschrift passiert da leider nichts.
Die Verbindungen zu Google klappt, der API Key funktioniert.
Wo genau muss ich nun weitere Einstellungen machen?

Das Unwetter Modul zeigt mir ein Bild und da finde ich auch wo ich die Paramter ändern kann. Hier stehe ich leider auf dem Schlauch.

Wäre sehr dankbar wenn mir jemand helfen könnte der dies versteht.LCN und Hue habe ich alles geschafft, nur diese MAP will nicht.

Herzlichen Dank im Voraus.
Bjoern

Ich hätte auch das IPS Studio, falls es darüber einfacher geht.

Hallo,

herzlich willkommen, eine richtige Entscheidung

Was meinst Du mit dem Satz, hast Du das mit dem Test-Button in dem Modul überprüft?

Es gibt ja verschiedenen Typen von GoogleMaps-Karten und demzufolge verschiedene Funktionen in dem Modul.
Ich würde Dir empfehlen, mal die Test-Script aus dem Modul zum Laufen zu bringen, das sind Beispiele zu den verschiedenen unterstützten Karten-Typen.

Was ist „das Unwettermodul“ und wie zeigt es dir ein Bild? Im Web oder in IPS?

Wenn Du magst kannst Du ja mal etwas genauer beschreiben, was Du vorhast, was Du schon probiert hast, sinnvollerweise mit den entsprechenden Informationen/Code.

Gruß
demel

Hi demel,

danke für den schnellen Reply.

Den Verbindungstest mit Google habe ich mit dem Test button gemacht, der entsprechende auch die Rückmeldung gab, Instanz ist aktiv.

Und nun gehen schon meine Probleme los: Ich habe keinen Plan wie ich überhaupt irgendeinen Typ von Karte über ein Skript dort einbinde.:confused:

Bislang waren in den von mir genutzten Modulen (ohne Skriptanpassungen) alle Parameter über die Instanz zu setzen. Nun habe ich in diesem Fall leiden keinen Plan wo ich ein Skript einfügen kann/muss. Da bin ich einfach zu blöd für. Ich glaube mir fehlt einfach der Anfang wo ich da gucken muss.

Letztendlich soll es eine Karte mit dem Weg von Zuhause bis zur Arbeit anzeigen.

Das „Unwettermodul“ zeigt auch ein Bild wie beim integrierten Wetter vom DWD.

VG
Bjoern

Hallo,

das GoogleMaps-Modiul stellt Funktionen (siehe README) zur Verfügung, um die passenden Karten beimGoogleMaaps zu erstellen.
Die Daten (also zB die Wehpunkte), muss man diesen Funktionen übergeben.
Je nach gewählter Funktion werde HTML erzeugt, die man in eine Variable vom Typ String mit dem Profil HTML-Box schreibet, das wird dann direkt dargestellt.
Oder (bei der dynamischen Karte) braucht man einen WebHook, um diesen Typ dynamische zu erzeugen.
Ich möchte nichmal auf die Beispiel-Scripte hinweisen.
je nachdem, wie frisch dein IPS ist (ich nehme an 5.2) gibt es auf der Konfigurationsseite des Moduls einen Link zur Doku. Alternativ kann man ja auch direkt in das GIT-Repository GitHub - demel42/IPSymconGoogleMaps: Interface for GoogleMaps API to create simple Maps gehen.
Im README sind alle Typen erklärt und haben den Verweis auf das passende Script (unterhalb vom Verzeichnis doc im Repository).

Gruß
demel

PS: „das Umweltmodul“ sagt mir weiterhin nichts, aber so wie es sich anhört wird da ja eine fertige externe Webseite (des DWD) mit einem Bild eingebunden. Du willst ja aber selbst so eine Karte erstellen oder genauer gesagt einen bestimmten Kartenausschnitt mit eigenen Wegmarken etc. versehen - dafür gibt’s eben u.a. GoogleMaps

Ja ich hab die 5.2.

Die Doku zu deinem Modul kenne ich.

Aber ich als Neuling habe bislang nicht Verstanden WO ich bei mir im Symcon das/die Skript/e für das Modul ablege so das es darauf den Zugriff bekommt.

Bei der Google Instanz, kann ich ja nur direkt den API Key hinterlegen. Ich stehe auf dem Schlauch was die Skripte angeht. Deren Anpassungen würde ich schon hinbekommen, doch wo (ich habs auf nem PI laufen) müssen die Skripte / Konfigurationsdateien für das Modul, bzw. die Instanz, abgelegt werden, damit es dann bereitgestellt wird?

Das ist mein Verständnisproblem.

Ok,
das sind ganz normale Script, nicht Modul-spezifisch. Die Verbindung eines Scripts mit dem Modul (bzw. korrekterweise der Instanz des Moduls) erfolgt über die Objekt-ID (jedes Objekt in IPS hat eine eindeutige ID) - bei einer Instanz auch Instanz-ID genannt. Diese wird den Modul-spezifischen Funktionen immer als 1. Argument übergeben.

Ich würde wie folgt vorgehen
du legts ein Script an, Position im Objektbau ist egal, sinnvollerweise macht man natürlich entsprechende Verzeichnisse (Kategorien genannt), z.B. Test.

In dieses leere Scripts kopierst Du den Inhalt von docs/GoogleMaps_GenerateStaticMap.php

Dann legst Du eine Variable an von Typ String und Profil ~HTMLBox

In dem Script passt Du dann folgende ID’s an

a) die Instanz-ID (GoogleMaps-Instanz markieren, rechts Maustaste -> Objekt-ID kopieren)


$url = GoogleMaps_GenerateStaticMap(1234 /* ID von GoogleMaps-Instanz */, json_encode($map));

und trägst das als erstes Argument zu dieser Funktionen (also ersetzt 1234 /* ID von GoogleMaps-Instanz */)

b) die o.g. Variable anstelle von 4711 /* ID von HtmlBox-Variable.


SetValueString(4711 /* ID von HtmlBox-Variable */, $html);

Script speichern und ausführen.

Dann sollte in der Variablen HTML-Code stehen und wenn Du die im Webfront betrachtest sollte da eine Karte zu sehen sein mit einer kleinen Route.

jetzt verständlicher?

Ich habe vorausgesetzt, das Du dich grundsätzlich in die Struktur von IPS schon eingelesen hast und das so ein Script dir nicht ganz fremd ist.

Ansonsten - bei Fragen fragen

Gruß
demel

hur nochmal mal zur Klarstellung: alle Instanzen, Variablen, Scripte etc werden über die WebConsole angelegt und von IPS verwaltetet.
Physikalisch liegen die (auf einem Linux-System unter /var/lib/symcon und die Logfiles unter /var/log/symcon.
Nur (zumindestens am Anfang):sollte man alle Arbeiten über die WebColsole machen, damit die Integrität des Systems gewährleistet ist.
Siehe auch Grundlagen — IP-Symcon :: Automatisierungssoftware

gruß
demel

DANKE demel!!!

Das sollte mir weiterhelfen, das war was mir fehlte. Habe Symcon erst seit 26 Stunden und habe noch nicht alles durch und wollte mal wieder schneller sein als die Polizei erlaubt.

Ich werde berichten.

VG
Björn

Löppt!

danke, danke danke!

Funktioniert alles so wie es soll, aber einen hätte ich noch:

Was kann ich gegen diese Warnung machen (kommt sobald ich traffic einblende):

Warning: Use of undefined constant traffic - assumed ‚traffic‘ (this will throw an Error in a future version of PHP) in /var/lib/symcon/scripts/20462.ips.php on line 78

Gruß
Björn

Wie sieht denn das Skript gesamt (20462) und insbesondere die Zeile 78 aus? Ohne das Du was postest ist das Glaskugel lesen, da must Du schon etwas ins Forum posten, wenn man Dir konkret einen Hinweis geben soll.

Mittlerweile ist es Zeile 83

Es handelt sich hier um das Demo Skript von demel, welches im Git hinterlegt ist (GoogleMaps_GenerateDynamicMap_WebHook.php) mit entsprechenden Koordinaten wo ich wohne.

In seinem Skript ist die Zeile (186) für die Map Layers auskommentiert, doch da wollte ich den Verkehrsstatus angezeigt bekommen, was auch funktioniert mit den Anpassungen die ich gemacht habe.

Die Karte wird vollständig angezeigt, halt nur mit dem Warning

Warning: Use of undefined constant traffic - assumed ‚traffic‘ (this will throw an Error in a future version of PHP) in /var/lib/symcon/scripts/20462.ips.php on line 78
oberhalb der Karte.

Hier nun die letzten Zeilen aus dem Skript.

Das fett und unterstrichene „traffic“ in Zeile 83 habe ich in die eckigen Klammer eingetragen und die // am Anfang entfernt, so das die Verkehrsmeldungen nun angezeigt werden.

80 $path['polyline_options'] = $polyline_options;
81 $paths[] = $path;
82 $map['paths'] = $paths;
83 $map['layers'] = [[u][b]traffic[/b][/u]]; // traffic, transit, bike
84 $html = GoogleMaps_GenerateDynamicMap(59867, json_encode($map));
85 echo $html;

VG
Björn

Die Ausprägungen sind Strings , also

[ 'traffic' ]

. Ich meine mich zu erinnern, das es auch eine Liste sein kann, das wäre das


[ 'traffic', 'bike' ]

demel

Danke, das war’s

nun habt ihr Ruhe vor mir :wink:

Ich habe mich mit diesem schönen Modul von demel42 beschäftigt und bin recht weit gekommen. Zum Verständnis und damit ich es richtig einsetzen kann, hätte ich noch ein paar Fragen:
Ich habe das jetzt so verstanden und auch schon anhand der Beispiele nachgestellt, dass mit GenerateDynamicMap eine dynamische Karte erzeugt wird. In dem Beispiel sind ja feste Punkte angegeben. Kann man das auch so nutzen, um eine Route darzustellen?
Weiterhin habe ich mit GetDistanceMatrix die Ergebnisse aus einer Routenplanung in einem JSON-String. Hier hapert es noch, dass ich daraus die einzelnen Werte zu Variablen zuweisen kann.

Insgesamt würde ich gern in 2 String-Variablen den Start- und den Zielort eintragen (oder der kommt aus anderen Anwendungen automatisch dort hinein), ggf. in weiteren Variablen noch Parameter für das Routing und die Kartendarstellung, und daraus dann eine Karte mit der angezeigten Route und mit Variablen für z.B. Fahrtzeit, Entfernung…
Ich habe vieles schon einzeln gesehen, nur kriege ich es irgendwie nicht so hin wie ich mir das wünsche.

Hallo,

dieses Modl ist ja nur ein Interface zu einigen der GoogleMap-API’s. Dabei werden soweit möglich, die Steuerparameter weitergegeben.

Hier ( Google Maps Platform  | Google Developers ) kann man am besten nachlesen, welche API am besten geeignet ist bzw. welche Optionen es gibt - die Doku ist allerdings ziemlich komplex.

Hinwis: de DynamicMap nutzt die „Maps JavaScript API“; im Prinzip produziere ich die HTML-Seite mit dem JavaScript-Code.
Die anderen von mir unterstützten API’s sind einfacher.

Mit Routen habe ic bisher nichts zu tun gehabt, aber ein schnelle Blick scheint mit auf die DirectionServices der DynamicMap hinzudeuten. Die habe ich (noch) nicht implementiert.

Was die Suche nach Ortsangaben angeht … scheint bei dem DirectionService möglich zu sein, ansonst muss man immer die Goe-Koordinaten angeben.

Bevor ich mich damit beschäftige, müsstest Du Dir das mal genauer anschauen und mir sagen, ob das ausreicht oder was du sonst habe willst. Dann kann ich gerne schauen, ob ich das in das Modul mit integrieren kann.

demel