SUPLA Scripts
Cześć. Mój pierwszy post na tym forum choć śledzę go już od jakiegoś czasu budując po woli swoją infrastrukturę domu inteligentnego wokół supla.org.
Ostatnio wpadłem na pomysł wyświetlania na nodemcu (esp8266 z wyświetlaczem) danych (np. temperatury) z innych urządzeń we/wy pozyskanych za pomocą adresu publicznego ze sceny zdefiniowanej na supla.fracz.com. Stworzyłem takie IDE
Jako wynik otrzymuję niestety:
Co robię źle?
Ostatnio wpadłem na pomysł wyświetlania na nodemcu (esp8266 z wyświetlaczem) danych (np. temperatury) z innych urządzeń we/wy pozyskanych za pomocą adresu publicznego ze sceny zdefiniowanej na supla.fracz.com. Stworzyłem takie IDE
Kod: Zaznacz cały
#include <ESP8266WiFi.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const char* ssid = "siec";
const char* password = "haslo";
const char* host = "supla.fracz.com";
void setup() {
Serial.begin(115200);
delay(10);
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
int value = 0;
void loop() {
delay(5000);
++value;
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/api/scenes/public/reszta-adresu-publicznego-sceny";
Serial.print("Requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
Serial.println("Respond:");
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("");
lcd.print(line);
}
Serial.println();
Serial.println("closing connection");
Kod: Zaznacz cały
Respond:
HTTP/1.1 301 Moved Permanently
Server: nginx/1.13.5
Date: Mon, 13 Nov 2017 21:32:36 GMT
Content-Type: text/html
Content-Length: 185
Connection: close
Location: https://supla.fracz.com/api/scenes/public/reszta-adresu-publicznego-sceny
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.13.5</center>
</body>
</html>
Ostatnio zmieniony pn lis 13, 2017 9:52 pm przez tgaweda, łącznie zmieniany 1 raz.
Z supla.fracz.com należy komunikować się po https. Co więcej, jest tam włączone HSTS, dlatego wsyzstkie żądania http są przekierowywane na https - o czym informuje Cię odpowiedź.
Musisz użyć protokołu https i komunikować się po porcie 443 a nie 80.
Musisz użyć protokołu https i komunikować się po porcie 443 a nie 80.
Mam wgrany na esp soft EgyIot, przez który kontroluję taśmę RGB i zauważyłem że skrypty nie potrafią sterować tym urządzeniem, mogę tylko odczytać stan taśmy. W skryptach urządzenie figuruje jako "undefined". Załączam screena jak to wygląda:
- Załączniki
-
- Opera Zdjᅣルcie_2017-11-14_210340_supla.fracz.com.png (16.53 KiB) Przejrzano 3737 razy