Wetter vorlesen lassen mit deutschen Wetterservern?

  • 162 Antworten
  • Letztes Antwortdatum
ich hab die zeile so aus dem browser rauskopiert! hatte auch erst vermutet das die stimme einfach doof ist aber nachdem du mich das script im browser hast aufrufen lassen hatte ich es schwarz auf weiß :-/

das script sieht an entsprechender stelle eigentlich sauber aus!
 
hab grad nachgeschaut - der Tippfehler ist in in meinem Ursprungsposting vom 02.12. vorigen Jahres schon drin - bitte diesen Codeabschnitt suchen und die Ausgabe (die Zeile mit "$return.=") korrigieren:

Code:
    if (isset($_GET['T_maxmin'])) {
        $return .= "Für heute wird eine Höchsttemperatur von ".$weather_array['Temp_max']." sowie eine Tiefsttemperatur von ".$weather_array['Temp_min']." Grad erwartet. ";
        $parameter[] = "Temperatur max/min";
    }
 
  • Danke
Reaktionen: 44262
Hallo,
erst mal danke für die Mühe.
Kann es sein, dass der WOEID Abruf mit den Koordinaten nicht mehr geht?
Bei mir kommt immer raus, dass die WOEID nicht abgerufen werden kann.
Die Koordinaten werden auch richtig übernommen (debug log) und es funktioniert bei keinem getesteten Standort.

Gruß tefracky

SlimBean 4.3 Build 2.2
Dorimanx 9.43
 
habe es gerade noch mal probiert, sowohl mit dem Script, was auf gummibaers Server liegt, als auch mit einem bei mir liegenden: sofern die Koordinaten nicht in irgendeinen Ozean oder in irgendeine unbewohnte Wildnis zeigen, wird auch eine WOEID abgerufen und damit auch die Wetterdaten.

Ich denke, daß da irgendwas in deiner Parameterübergabe schiefläuft. Eventuell sind Länge und Breite vertauscht?
 
Hi,
danke für die Antwort.
Ich habe das Skript von Seite 5 unten einfach kopiert und kann es mit http://tefracky.ohost.de/wetter.php?lat=50.57&lon=8.46&full aufrufen.
Das Problem bei dem Skript auf der api... Seite war, dass die Umlaute nicht richtig "zurück kommen", also bei dem HTTP get von Tasker die Umlaute nur als so komische ? im schwarzen Kästchen dargestellt werden.

Gruß tefracky

SlimBean 4.3 Build 2.2
Dorimanx 9.43
 
Zuletzt bearbeitet:
hast du dein Script schon mal "normal" in nem Browser aufgerufen?
mir haut es da schon am laufenden Meter Ausgaben um die Ohren, die da so nicht sein sollten bzw. deutlich anders formatiert sein müßten.

Ich denke, du hast da vom Script was falsch kopiert. und wenns nur so "banale" Dinge wie Anführungszeichen sind...

Was die Seite von Gummibaer angeht: Verquere Umlaute deuten darauf hin, daß das Character Encoding auf der abrufenden Seite "falsch" ist. Schau mal, ob du dem Tasker mitteilen kannst, daß es UTF-8 ist. Oder genau andersrum ISO 8859-15 versuchen einzustellen. Bin mir nicht sicher, ob ich es damals in UTF-8 encoding oder in dem "normalen" ISO encoding gemacht htte. Eins von beiden sollte die Umlaute jedenfalls richtig darstellen.

Ich kann es zur Zeit leider nicht tiefgreifender weiterverfolgen, da mir schlichtweg die Zeit fehlt.

Edit: eins fällt mir noch ein: Der Webspace wo das script liegt, kann aber schon PHP, oder?
 
Zuletzt bearbeitet:
Ich habe im Moment leider nur mein Handy zur Verfügung, deswegen kann ich es nicht im Browser laufen lassen.
Beim kopieren ging tatsächlich etwas schief, es wurde am Ende noch etwas an das Skript dran gehängt. Es hatte allerdings keine Auswirkung auf die Funktionalität, es kam nur beim Aufruf nur immer noch mit raus.
PHP funktioniert schon, sonst würde meiner Meinung nach kein Fehler, sondern gar nichts zurück kommen.
Bisher habe ich bei Tasker leider nichts mit Unicode gefunden.
Vielleicht kannst du ja noch mal die aktuell laufende PHP einfach hochladen, dann brauche ich ja nur die par Buchstaben ändern, ansonsten funktioniert es ja.

Gruß tefracky

SlimBean 4.3 Build 2.2
Dorimanx 9.43
 
hm, dann habe ich erstmal keine Idee.
 
Der Fehler liegt in dieser Funktion.
PHP:
function get_WOEID($latitude, $longitude){
    $yqlresult = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22$latitude%2C%20$longitude%22%20and%20gflags%3D%22R%22&appid=test";
    $yqlresult = simplexml_load_file($yqlquery);
    debugprint($yqlquery);
    debugprint($yqlresult);
    return (string)$yqlresult->results->Result->woeid;
}

//hier geht das Script dann los... ;)
if (isset($_GET['lat']) && isset($_GET['lon'])){
    //Länge und Breite wurden übergeben, jetzt auf float prüfen
    $lat = $_GET['lat'];
    $lon = $_GET['lon'];
    if (!is_float((float)$lat)) {
        $errors[] = "lat ist nicht float!";
    }    
    if (!is_float((float)$lon)) {
        $errors[] = "lon ist nicht float!";
    }
}
else{
    //Ohne Längen- und Breitenangaben aufgerufen!
    $errors[] = "Länge und Breite nicht angegeben! script erwartet Parameter!";
    $errors[] = "Syntax: script.php?lat=0.0&lon=0.0";
}

//WOE-ID (Yahoo Where on Earth ID) ermitteln
unset ($woeid);
$woeid = get_WOEID($lat, $lon);
Ich habe den direkten Link zur Bestimmung der WOEID benutzt.
Wenn ich die Variablen direkt durch die Koordinaten ersetze, funktioniert es. $lat, $lon sind auch richtig, die kann ich mir ausgeben lassen.
Wo liegt der Fehler?

Gruß tefracky

SlimBean 4.3 Build 2.2
Dorimanx 9.43
 
Zuletzt bearbeitet:
Also über WLAN geht der Task einwandfrei, nur über mobile Daten nicht woran kann das liegen?
 
oogam schrieb:
Also über WLAN geht der Task einwandfrei, nur über mobile Daten nicht woran kann das liegen?

merkwürdig - aber mal "ins Blaue geschossen": hast du evtl. dein Telefon gerootet und irgendwelche Programme drauf, die in Rechte eingreifen? Vielleicht hat Tasker zwar Rechte aufs Internet zuzugreifen via WLAN, nicht aber via Mobildaten? Das wäre ad hoc das Einzige was mir einfallen würde.
 
Nein kein root und auch sonst nichts am Task geändert. Und er zieht sich ja auch die Daten, Variablen mal geleert und nochmal gestartet. Funktioniert alles bis auf Sprachausgabe. Nochmal geleert WLAN an, gestartet und es erfolgt auch die Sprachausgabe, habe keine Idee woran es liegen könnte
 
Lösung gefunden. Musste bei Einstellungen->Sprache&Tastatur->Sprache->Text-in-Sprache-Ausgabe->Google Text-in-Sprache die Sprachdaten installieren. Danach ging es, scheinbar hat er es über WLAN irgendwie temporär gezogen.
 
hallo leute,
hab leider mein handy verloren und keine backups von meinen tasks...

will wieder nach dem der wecker geklingelt hat mir das wetter vorlesen lassen. allerdings hab ich keinen task mehr der funktioniert. ein alter von obelix76 der hier mal angeboten wurde scheint nicht zu klappen. hab leider auch auf die schnelle noch nicht herausgefunden woran es liegt.

kann mir jmd einen funktionierenden task zukommen lassen.

das weather.php script liegt bei mir auf einem server. wer möchte kann per pn nach der adresse fragen.

grüße
 
hab inzwischen herausgefunden woran es liegt.

%LOCN gibt mir keine längen und breitenangaben zurück. LOCN1 und LOCN2 sind nach dem aufteilen beide leer. jemand eine ahnung woran das liegen kann?
in locn sind doch die daten gespeichert, sobald ich mit dem netz verbunden bin oder nicht?
 
Da ich nach meinen Erfahrungen von Google deutlich verlässlichere Wetterdaten bekomme als von Yahoo, hab ich mal einen Beispieltask geschrieben, mit dem man sich die Prognosen nach dem Muster: "Heute teilweise bedeckt. Höchsttemperatur 29 Grad." ansagen lassen kann:

Code:
Wetteransage
	A1: Variable Split [ Name:%LOC Splitter:, Delete Base:Off ] 
	A2: HTTP Get [ Server:Port:http://api.wunderground.com/api/[color=red]APIKEY[/color]/forecast/lang:DL/q/%LOC1,%LOC2.json Path: Attributes: Cookies: Timeout:10 Mime Type: Output File:wetter.txt Trust Any Certificate:Off ] 
	A3: Read File [ File:wetter.txt To Var:%wetter Continue Task After Error:On ] 
	A4: Variable Split [ Name:%wetter Splitter:"fcttext_metric":" Delete Base:Off ] 
	A5: Variable Split [ Name:%wetter2 Splitter:C Delete Base:Off ]  
	A6: Say [ Text:Heute %wetter21 Graht. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
Der rote Teil der URL muss durch den eigenen API-Key ersetzt werden, welchen man sich kostenlos bei Weather Underground holen kann.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: munny
@obelix76
meine alte frage noch...:huh: irgendwie bin ich zu doff zum teilen ich möche nur die Ansage ..z.B 32 Grad. Sonnig.
Ursprungs Text ist aber Wetterdaten zur Verfügung gestellt von Yahoo! Weather.
DESCRIPTION: Das Wetter von 12 Uhr 59: Die Außentemperatur beträgt 32 Grad. Sonnig
mit DESCRIPTION: wird Wetterdaten zur Verfügung gestellt von Yahoo! Weather. ausgeblendet
wenn ich DESCRIPTION: Das Wetter von reinschreibe. ist die Ansage" 12 Uhr 59: Die Außentemperatur beträgt 32 Grad. Sonnig"
wie kann ich das "12 Uhr 59: Die Außentemperatur beträgt" ausblenden ?
hab mit %Time probiert aber das geht nicht :confused2:
 
ich habe den Task und Tasker aktuell nicht mehr auf meinem Fon (Fullbrick durch NAND-Failure; Tasker bekomm ich auf dem Ersatzgerät z.Z. nicht richtig freigeschalten), daher nur aus dem Gedächtnis:

Split trennt iirc den String an dem übergebenen Trennstring (an dessen ersten Vorkommen) auf. Also muß man sich was (idealerweise) nur einmal auftauchendes in der Nähe suchen, um zu trennen.
Ich würde also jetzt als Trennstring das Wort "beträgt" hernehmen. Ich kann dir aber beim besten Willen nicht sagen, ob man dann noch weitere Stringmathematik nachsetzen muß. Ich weiß nicht mehr, wie ich die Ansage damals durchgemangelt hatte.
 
Supi mit "beträgt" geht es...Vielen Dank!
 
Also ich würde mir ja auch gern das Wetter vorlesen lassen.
Also xy grad sonnig oder so..
Aber ich raff hier irgendwie null...
Hab die Datei wetter.xml.txt von Seite 7 runter geladen, umbenannt und bei Tasks importiert. Text to speech installiert. Aber nix klappt. Dann wollt ich den Server wie hier auf Seite 10 beschrieben auf Weather Underground ändern. Aber wo bekomm ich meinen APIKEY her?
Kann mir da jemand helfen?
Registriert hab ich mich da.
Wäre echt super, wenn mir da jemand weiter helfen kann.
LG Chris
 

Ähnliche Themen

S
Antworten
9
Aufrufe
369
holms
holms
H
Antworten
0
Aufrufe
273
Horgul123
H
M
Antworten
27
Aufrufe
1.177
MeinNickname
MeinNickname
Zurück
Oben Unten