Guten Morgen
Ich möchte mit einer NodeMCU (ESP88266) drei DHT22 Sensoren auslesen und
die Werte mit einem URL-String an ein PHP Skript übermitteln.
Hier erstmal der Sketch:
Wenn die URL im Browser aufgerufen wird, werden die Werte (hier nur
0.00) in sqlite gespeichert.
Der ESP ist mit der angezeigten IP im WLAN zu finden.
Es wurde mit drei Modellen getestet.
Der ESP (jaja, NodeMCU) ist nackt, nur das USB-Kabel ist angeschlossen.
Wie kann ich weiter bei der Fehlersuche vorgehen?
Kann es an dem aktivierten SSL der Domain liegen?
(Ist aber nicht erzwungen!)
Gruß und gute Nacht
Kolja
>Wenn die URL im Browser aufgerufen wird, werden die Werte (hier nur>0.00) in sqlite gespeichert.
Das glaub ich nicht, die Domäne "/Tomaten/" gehört sicher nicht dir.
> Das glaub ich nicht, die Domäne "/Tomaten/" gehört sicher nicht dir.
Muß sie ja nicht, solange der DNS Server (vermutlich vom Router) sie
auflösen kann.
Hast Du es mal mit der IP versucht? Dann könntest Du evtl. schon mal ein
DNS Problem ausschließen.
Nimm mal den ESP8266WebServer raus, wenn du den nicht verwendest.
Und probier mal, bei client.connect ein IPAddress-Objekt statt dem
Hostname-String anzugeben.
Die Namensauflösung und Serververbindung funktioniert, sonst käme ja die
Meldung "connection failed". Das Problem ist, dass der ESP keine
Gelegenheit bekommt die Daten zu senden. Also füge mal folgenden Code
hinter delay(10) ein:
1
unsignedlongtimeout=millis();
2
while(client.available()==0){
3
if(millis()-timeout>5000){
4
Serial.println(">>> Client Timeout !");
5
client.stop();
6
return;
7
}
8
}
9
while(client.available()){
10
Stringline=client.readStringUntil('\r');
11
Serial.print(line);
12
}
"server.send" ist überflüssig und auch bei den includes müsste mal
ausgemistet werden.
Clemens W. schrieb:>> Das glaub ich nicht, die Domäne "/Tomaten/" gehört sicher nicht> dir.>> Muß sie ja nicht, solange der DNS Server (vermutlich vom Router) sie> auflösen kann.>> Hast Du es mal mit der IP versucht? Dann könntest Du evtl. schon mal ein> DNS Problem ausschließen.
Quatsch.
Slash vor einem Hostnamen ist schlichtweg Mist, wäre mir nicht sicher,
ob das funktioniert.
Das funktioniert zu 100% und ist sogar mit HTTPS gebaut. ;)
Den SHA1 Fingerprint musst du natürlich mit dem deines Zertifikates
ersetzen, ich setze persönlich gerne auf Thingspeak, dann muss ich auf
dem NAS nicht noch einen weiteren Dienst laufen lassen...
> Slash vor einem Hostnamen ist schlichtweg Mist, wäre mir nicht sicher,
Stimmt, daß ist der Quatsch. Wird echt Zeit, dass die Hitze wieder ein
Ende nimmt...
Ich würd mal in den Logfiles vom Server schauen ob da überhaupt was
ankommt.
Laut dem was über die serielle Schnittstelle ausgegeben wird hat der TO
es schon mir der IP versucht. Im Sketch steht der Domain Namen (host),
in der Ausgabe die IP.
Ich kenn mich mit SSL zwar nicht so aus musste aber auch schon
verschiedene Hosts vom ESP aus per SSL ansprechen da es einen Redirect
von HTTP auf HTTPS gab. Eventuell ist es bei dir ja auch so.
Ps: Wieso ihr denkt dass hier die Domain "/Tomaten/" angesprochen wird
ist mir schleierhaft.
Mario M. schrieb:> Das Problem ist, dass der ESP keine> Gelegenheit bekommt die Daten zu senden. Also füge mal folgenden Code> hinter delay(10) ein:unsigned long timeout = millis();> while (client.available() == 0) {> if (millis() - timeout > 5000) {> Serial.println( >>> Client Timeout ! );> client.stop();> return;> }> }> while(client.available()){> String line = client.readStringUntil('\r');> Serial.print(line);> }>> server.send ist überflüssig und auch bei den includes müsste mal> ausgemistet werden.
Habe ich mal gemacht und bekomme jetzt folgendeAusgabe:
Kolja L. schrieb:> Liegt also doch am https?
Ja. Der Apache leitet http-Seiten zwangsweise auf die https-Seiten
weiter. Da müsste man in der Apache-Konfiguration bestimmte Seiten bzw-
Ordner für http freischalten. Evtl. lässt sich da auch was über
mod_rewrite machen, aber da musst Du Deinen Server-Betreiber fragen.
Nur der Begrifflichkeiten wegen:
Ein Server (den Du ansprechen möchtest) ist keine Domain.
Die Domain wäre xxx.de
Ein Server der Domain ist www oder vollständig www.xxx.de
Ein weiterer wäre z.B. mail.xxx.de oder ns1.xxx.de
Wieso Du nun von www.xxxx.de auf www.xxx.de umgeleitet wirst, weiß ich
nicht.
Ich habe noch nicht in eine HTTPS-Verbindung hinein gelauscht, könnte
mir aber vorstellen, dass das Protokoll innerhalb der Verschlüsselung
dennoch HTTP/1.1 ist.
Gerade nochmal gegooglet: HTTPS/1.1 scheint es nicht zu geben.
Gruß
Jobst
Ja, es liegt an der SSL Verschlüsselung.
Zumindest funktioniert alles, wenn ich ne andere Domain nehme.
Damit ist das Skropt von oben doch funktionsfähig,
müsste nur aufgeräumt werden.