Hallo, ich versuche, die Position meines Autos als Karte zu visualisieren. Nur so, weil es geht. Fragt nicht...
Mein Ansatz
define carMap weblink iframe https://maps.google.com/maps?width=700&height=440&hl=en&q={ReadingsVal('carnet', 'position_lat', "")},{ReadingsVal('carnet', 'position_lon', "")}&ie=UTF8&t=&z=10&iwloc=B&output=embed
löst aber die {} nicht in die Readings auf. Was mache ich falsch?
Per Forumssuche ermittelt befürchte ich, dass das Modul einfach keine Perl-Auflösung seiner Parameter durchführt. Hat jemand eine andere Idee? Utils-Funktionen könnten gehen, sind ja aber auch perl-code...
Hi,
und diese Variante?
define w_Frlink weblink htmlCode { WeatherAsHtml("w_Frankfurt") }
ich verstehe das so, dass Du damit eine Perlfunktion aufrufst die den "Link" zurückgibt?
Sowas als Minimalvariante geht z.B:
defmod w_Frlink weblink htmlCode { return '<iframe src="https://heinz-otto.blogspot.com/"></iframe>' }
Gruß Otto
Du hast mich auf eine gute Fährte gelenkt, danke dafür.
defmod n_carnetMap notify carnet:location.* {\
my $url = 'https://maps.google.com/maps?width=700&height=440&hl=en&q='.ReadingsVal('carnet','position_lat',0).','.ReadingsVal('carnet','position_lng',0).'&ie=UTF8&t=&z=16&iwloc=B&output=embed';;;;\
fhem("defmod carnetMap1 weblink iframe ".$url);;;;\
}
Das hier macht nun, was es soll.
Mit dem Nachteil: rotes Fragezeichen :)
Deswegen lege ich mal noch einen kurzen Versuch nach:
Für die Raw Definition
defmod carnetMap2 weblink htmlCode {\
my $lat=51.3445432;;\
my $lng=12.3750251;;\
my $url="https://maps.google.com/maps?hl=en&q=$lat,$lng&ie=UTF8&t=&z=16&iwloc=B&output=embed";;\
return "<iframe src=$url width=700 height=440></iframe>"\
}
Musst Du nur noch deine Readings einfüllen :)
Daher habe ich den iframe Tag https://www.w3schools.com/html/html_iframe.asp
Gruß Otto