SUPLA Scripts

Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Możecie czekać aktywnie, polecam :-D http://php.net/manual/pl/index.php
tgaweda
Posty: 91
Rejestracja: pn lis 13, 2017 9:21 pm

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

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");
Jako wynik otrzymuję niestety:

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>
Co robię źle?
Ostatnio zmieniony pn lis 13, 2017 9:52 pm przez tgaweda, łącznie zmieniany 1 raz.
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

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.
tgaweda
Posty: 91
Rejestracja: pn lis 13, 2017 9:21 pm

Poszło! Dziękuję za wskazówki.
Neavvy
Posty: 64
Rejestracja: czw maja 11, 2017 8:19 pm

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
Opera Zdjᅣルcie_2017-11-14_210340_supla.fracz.com.png (16.53 KiB) Przejrzano 3737 razy
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Wrzuć screen z Clouda, ze strony urządzenia. Chodzi mi o kwadracik z kanałem który odpowiada za tą taśmę z którą jest problem.
Neavvy
Posty: 64
Rejestracja: czw maja 11, 2017 8:19 pm

Proszę:
Załączniki
bez_hasla.png
bez_hasla.png (81.7 KiB) Przejrzano 3677 razy
Ostatnio zmieniony śr lis 15, 2017 5:40 pm przez Neavvy, łącznie zmieniany 1 raz.
Awatar użytkownika
pzygmunt
Posty: 18207
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Neavvy pisze: śr lis 15, 2017 5:26 pmProszę:
Rozdajesz hasła
Neavvy
Posty: 64
Rejestracja: czw maja 11, 2017 8:19 pm

Fakt, w ferworze zapomniałem, że znajdują się tam hasła, dzięki za uwagę
Neavvy
Posty: 64
Rejestracja: czw maja 11, 2017 8:19 pm

Podbijam temat, próbowałem z innymi softami I na nich wszystko dziala, jednak najbardziej pasuje mi EgyIOT, więc byłbym bardzo wdzięczny za jakąś poradę :D
Zablokowany

Wróć do „SUPLA Scripts”