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.
1 | #include <Arduino.h>
|
2 | #include <ESP8266WiFi.h>
|
3 | #include <Wire.h>
|
4 | #include <String.h>
|
5 |
|
6 | char thingSpeakAddress[] = "api.thingspeak.com";
|
7 | char thingSpeakSHA1[] = "78 60 18 44 81 35 BF DF 77 84 D4 0A 22 0D 9B 4E 6C DC 57 2C";
|
8 | uint thingSpeakHTTPSPort = 443;
|
9 |
|
10 | WiFiClientSecure client;
|
11 |
|
12 | void setup() {
|
13 | WiFi.begin(ssid, password);
|
14 | while (WiFi.status() != WL_CONNECTED) {
|
15 | delay(500);
|
16 | }
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 | void updateThingSpeakHTTPS(String tsData, String l_APIKey) {
|
22 | if (!client.connect(thingSpeakAddress, thingSpeakHTTPSPort)) {
|
23 | //Serial.println("connection failed");
|
24 | return;
|
25 | }
|
26 |
|
27 | if (client.verify(thingSpeakSHA1, thingSpeakAddress)) {
|
28 | //Serial.println("certificate matches");
|
29 |
|
30 | client.print("POST /update HTTP/1.1\n");
|
31 | client.print("Host: api.thingspeak.com\n");
|
32 | client.print("Connection: close\n");
|
33 | client.print("X-THINGSPEAKAPIKEY: " + l_APIKey + "\n");
|
34 | client.print("Content-Type: application/x-www-form-urlencoded\n");
|
35 | client.print("Content-Length: ");
|
36 | client.print(tsData.length());
|
37 | client.print("\n\n");
|
38 | client.print(tsData);
|
39 |
|
40 | if (client.connected()) {
|
41 | //Serial.println("Connecting to ThingSpeak...");
|
42 | //Serial.println();
|
43 | }
|
44 | } else {
|
45 | //Serial.println("certificate doesn't match");
|
46 | }
|
47 | }
|
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...