per PHP an Wunderground senden - gibt Server eine Rückmeldung?

Für allgemeine Software
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#11

Beitrag von Wetterfrosch »

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?
Benutzeravatar
Tex
Offline
Beiträge: 383
Registriert: 07 Dez 2020, 18:32
Wohnort: Woldegk
Hat sich bedankt: 19 mal
Danksagung erhalten: 67 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#12

Beitrag von Tex »

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.
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#13

Beitrag von Wetterfrosch »

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.
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#14

Beitrag von Wetterfrosch »

@Rolf,

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);	
	
}
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?
Benutzeravatar
rodolfo
Offline
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?

#15

Beitrag von rodolfo »

Aber mit dieser Lösung prüfe ich ja nur ob der gegnerische Server erreichbar ist
Nein, du erhältst den entsprechenden returncode.

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);

?>
Viele Grüße, Rolf

Bild
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#16

Beitrag von Wetterfrosch »

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
Benutzeravatar
rodolfo
Offline
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?

#17

Beitrag von rodolfo »

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.
Viele Grüße, Rolf

Bild
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#18

Beitrag von Wetterfrosch »

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.
Benutzeravatar
rodolfo
Offline
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?

#19

Beitrag von rodolfo »

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.
screen.png
screen.png (16.91 KiB) 1181 mal betrachtet
Was bekommst du zurück wenn du die URL in die Adresszeile eines Browsers eingibst und abschickst?
Viele Grüße, Rolf

Bild
Benutzeravatar
Wetterfrosch
Offline
Beiträge: 403
Registriert: 08 Dez 2020, 11:49
Wohnort: 79410 Badenweiler (350mNN) / Breisgau-Hochschwarzwald
Hat sich bedankt: 104 mal
Danksagung erhalten: 32 mal
Kontaktdaten:

Re: per PHP an Wunderground senden - gibt Server eine Rückmeldung?

#20

Beitrag von Wetterfrosch »

@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

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);
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.
Antworten