per PHP an Wunderground senden - gibt Server eine Rückmeldung?
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Hi Rolf,
ok, dann wird "1" als $returncode ausgegeben.
kann ich nun mit dieser "1" eine if/else Bedingung einbauen, d.h. wenn keine "1" rückgemeldet wird, dann sende das Paket nochmal?
Wo sollte ich deine Abfrage dann einbauen, nach meiner "fopen" zeile oder davor?
Ich denke ich muss die Abfrage vor der fopen Zeile einbauen, wird dann "1" rückgemeldet, dann sende die fopen-zeile, oder?
ok, dann wird "1" als $returncode ausgegeben.
kann ich nun mit dieser "1" eine if/else Bedingung einbauen, d.h. wenn keine "1" rückgemeldet wird, dann sende das Paket nochmal?
Wo sollte ich deine Abfrage dann einbauen, nach meiner "fopen" zeile oder davor?
Ich denke ich muss die Abfrage vor der fopen Zeile einbauen, wird dann "1" rückgemeldet, dann sende die fopen-zeile, oder?
- Tex
- Beiträge: 393
- Registriert: 07 Dez 2020, 18:32
- Wohnort: Woldegk
- Hat sich bedankt: 24 mal
- Danksagung erhalten: 67 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Wenn, dann sollte man das erneute Senden limitieren - denn sonst hängt sich irgendwann irgendetwas gnadenlos auf. Nicht umsonst bricht WSWIN nach 3 Fehlversuchen für 2 Stunden ab.
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Hi Tex,
ich dachte nur an einen weiteren Sendeversuch nach einer Pause von 2 Sekunden.
Aktuell ist es so, dass bei einem Sendeintervall von 5 Minuten, wenn das Paket nicht ankommt, 10 Minuten halt keine Daten ankommen, deswegen wollte ich, wenn ein Sendeversuch scheitert, diesen einmalig nach 2 Sekunden noch mal wiederholen, wenn dieser dann auch nicht durchgeht, dann wird erst wieder in 5 Minuten regulär gesendet.
ich dachte nur an einen weiteren Sendeversuch nach einer Pause von 2 Sekunden.
Aktuell ist es so, dass bei einem Sendeintervall von 5 Minuten, wenn das Paket nicht ankommt, 10 Minuten halt keine Daten ankommen, deswegen wollte ich, wenn ein Sendeversuch scheitert, diesen einmalig nach 2 Sekunden noch mal wiederholen, wenn dieser dann auch nicht durchgeht, dann wird erst wieder in 5 Minuten regulär gesendet.
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
@Rolf,
kannst mal über mein Script schauen, kann ich das so machen?
Aber mit dieser Lösung prüfe ich ja nur ob der gegnerische Server erreichbar ist nicht aber ob mein gesendetes Paket mit "Success" (bei WU) oder "OK" (bei Awekas) vom gegnerischen Server bestätigt wird, gibt es dafür auch eine Lösung, d.h. das "Success" bzw das "OK" welches vom gegnerischen server rückgemeldet wird abzurufen und dann zu verarbeiten?
kannst mal über mein Script schauen, kann ich das so machen?
Code: Alles auswählen
$url = "http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=$IDwu&PASSWORD=$PASSWORDwu&action=$action&dateutc=$dateutc&tempf=$tempf&dewptf=$dewptf&humidity=$humidity&winddir=$winddir&windspeedmph=$windspeedmph&windgustmph=$boe&UV=$UV&baromin=$baromin&rainin=$rainin&dailyrainin=$dailyrainin";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
$returncode = curl_exec($ch);
curl_close($ch);
if($returncode == 1)
{
$url = fopen("http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=$IDwu&PASSWORD=$PASSWORDwu&action=$action&dateutc=$dateutc&tempf=$tempf&dewptf=$dewptf&humidity=$humidity&winddir=$winddir&windspeedmph=$windspeedmph&windgustmph=$boe&UV=$UV&baromin=$baromin&rainin=$rainin&dailyrainin=$dailyrainin", "r");
fclose($url);
}
else
{
sleep(2); //2 Sekunden warten und dann noch mal ein Sendeversuch starten
$url = fopen("http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=$IDwu&PASSWORD=$PASSWORDwu&action=$action&dateutc=$dateutc&tempf=$tempf&dewptf=$dewptf&humidity=$humidity&winddir=$winddir&windspeedmph=$windspeedmph&windgustmph=$boe&UV=$UV&baromin=$baromin&rainin=$rainin&dailyrainin=$dailyrainin", "r");
fclose($url);
}
- rodolfo
- Beiträge: 256
- Registriert: 27 Nov 2020, 15:59
- Wohnort: Pfaffenhofen
- Hat sich bedankt: 23 mal
- Danksagung erhalten: 21 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Nein, du erhältst den entsprechenden returncode.Aber mit dieser Lösung prüfe ich ja nur ob der gegnerische Server erreichbar ist
Folgendes Script postet die Daten nach Wunderground., versucht dies bei Nichterfolg 3mal im Abstand von 5 Sekunden und bricht danach oder bei Erfolg ab.
Code: Alles auswählen
<?php
// Wunderground URL
$urlWU = "DEINE URL";
// Variable anlegem
$switch = true;
// Zählvariable anlegen
$i = 0;
// Funktion zum Aufruf der Wunderground URL
function pushToWU($url){
// cURL initialisieren
$ch = curl_init($url);
// cURL Optionen setzen
curl_setopt($ch, CURLOPT_HEADER, 0);
// cURL ausführen (Daten an den Browser weiterreichen) - Ergebnis in Variable speichern
$returncode = curl_exec($ch);
return $returncode;
}
// solange $switch true ist wird die folgende Schleife 3mal ausgeführt
while($i < 3 && $switch){
// Funktion aufrufen - Ergebnis in Variable speichern
$pushResp = pushToWU($urlWU);
// wenn Ergebnis "success" --> Variable $switch auf false stellen
if($pushResp == "success"){
$switch = false;
}
// Zählvariable erhöhen
$i++;
// 5 Sekunden warten
sleep(5);
}
// cURL schliessen
curl_close($ch);
?>
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Hi Rolf,
Verständnissfrage,
gehört bei der while-Schleife bei der Bedingung "switch" nicht noch die Bedingung "== false" dahinter?
und wo baue ich die Gesichte mit dem "fopen" rein um die Daten hochzuladen oder brauch ich das bei dieser Scriptversion nicht mehr, reicht die blose URL oben am Anfang deines Scriptes?
Danke für deine Bemühungen.
Prinzipiell, ist es sinnvoll so etwas einzubauen oder sollte man es lieber weglassen, d.h. wenn beim erste Sendeversuch es nicht klappt, einfach auf den nächsten in 5 Minuten warten und hoffen dass der dann durch geht?
Wie macht es denn die Wetterstation selbst?
Gruß Frank
Verständnissfrage,
gehört bei der while-Schleife bei der Bedingung "switch" nicht noch die Bedingung "== false" dahinter?
und wo baue ich die Gesichte mit dem "fopen" rein um die Daten hochzuladen oder brauch ich das bei dieser Scriptversion nicht mehr, reicht die blose URL oben am Anfang deines Scriptes?
Danke für deine Bemühungen.
Prinzipiell, ist es sinnvoll so etwas einzubauen oder sollte man es lieber weglassen, d.h. wenn beim erste Sendeversuch es nicht klappt, einfach auf den nächsten in 5 Minuten warten und hoffen dass der dann durch geht?
Wie macht es denn die Wetterstation selbst?
Gruß Frank
- rodolfo
- Beiträge: 256
- Registriert: 27 Nov 2020, 15:59
- Wohnort: Pfaffenhofen
- Hat sich bedankt: 23 mal
- Danksagung erhalten: 21 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Hallo Frank,
du kannst das Script eins zu eins übernehmen - bis auf das einfügen deiner URL musst du nichts weiteres mehr tun.
Ich denke grundsätzlich spricht nichts dagegen drei Versuche zu unternehmen.
du kannst das Script eins zu eins übernehmen - bis auf das einfügen deiner URL musst du nichts weiteres mehr tun.
Ich denke grundsätzlich spricht nichts dagegen drei Versuche zu unternehmen.
- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
hmmm, irgendwie kommen mit dem Script keine Daten bei WU mehr an.
Kann es sein, dass ich bei "funktion" die Variable $url in $urlWU umbennennen muss?
Hab das mal versucht, kommen dennoch keine Daten bei WU an oder mach ich ggf. doch noch was falsch?.
Habe dein Script gegen meins komplett ausgetauscht, also da wo zuvor die Zeile mit "fopen" stand habe ich nun dein Script eingebaut.
Aber wenns zu kompliziert wird, ist es auch nicht so wichtig, in der Regel kommen die Daten ja mit dem ersten Sendeversuch an und wenn mal nicht, dann dauert es halt weitere 5 Minuten bis halt das nächste Datenpaket gesendet wird, nur wenn das dann just in diesem Moment auch nicht ankommen würde, dann wäre es irgendwann mal doof.
Kann es sein, dass ich bei "funktion" die Variable $url in $urlWU umbennennen muss?
Hab das mal versucht, kommen dennoch keine Daten bei WU an oder mach ich ggf. doch noch was falsch?.
Habe dein Script gegen meins komplett ausgetauscht, also da wo zuvor die Zeile mit "fopen" stand habe ich nun dein Script eingebaut.
Aber wenns zu kompliziert wird, ist es auch nicht so wichtig, in der Regel kommen die Daten ja mit dem ersten Sendeversuch an und wenn mal nicht, dann dauert es halt weitere 5 Minuten bis halt das nächste Datenpaket gesendet wird, nur wenn das dann just in diesem Moment auch nicht ankommen würde, dann wäre es irgendwann mal doof.
- rodolfo
- Beiträge: 256
- Registriert: 27 Nov 2020, 15:59
- Wohnort: Pfaffenhofen
- Hat sich bedankt: 23 mal
- Danksagung erhalten: 21 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
Seltsam. Hab das eben nochmal getestet - wenn ich im Script die URL mit meinen Daten füttere und dieses aufrufe erhalte ich wie erwartet "success" als response und die Daten sind übertragen.
Was bekommst du zurück wenn du die URL in die Adresszeile eines Browsers eingibst und abschickst?- Wetterfrosch
- Beiträge: 477
- Registriert: 08 Dez 2020, 11:49
- Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
- Hat sich bedankt: 129 mal
- Danksagung erhalten: 37 mal
- Kontaktdaten:
Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?
@rodolfo
bei WU kommt "success" bei Awekas "OK", d.h. will ich dein script für Awekas verwenden muss ich darin das "success" gegen "OK" austauschen, aber funktioniert auch bei Awekas nicht, kommen keine Daten an, analog wie bei WU.
muss ich denn diese Zeile
weiterhin eingebaut lassen oder sie komplett durch dein Script ersetzen?
denn mir ist in deinem Script nicht ganz klar, wo darin die daten zum server hochgeladen werden.
bei WU kommt "success" bei Awekas "OK", d.h. will ich dein script für Awekas verwenden muss ich darin das "success" gegen "OK" austauschen, aber funktioniert auch bei Awekas nicht, kommen keine Daten an, analog wie bei WU.
muss ich denn diese Zeile
Code: Alles auswählen
$urlwu = fopen("http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=$IDwu&PASSWORD=$PASSWORDwu&action=$action&dateutc=$dateutc&tempf=$tempf&dewptf=$dewptf&humidity=$humidity&winddir=$winddir&windspeedmph=$windspeedmph&windgustmph=$boe&UV=$UV&baromin=$baromin&rainin=$rainin&dailyrainin=$dailyrainin", "r");
fclose($urlwu);
denn mir ist in deinem Script nicht ganz klar, wo darin die daten zum server hochgeladen werden.