SUPLA Scripts

User avatar
fracz
Posts: 1603
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Sun Nov 12, 2017 10:44 am

Możecie czekać aktywnie, polecam :-D http://php.net/manual/pl/index.php
tgaweda
Posts: 41
Joined: Mon Nov 13, 2017 9:21 pm

Mon Nov 13, 2017 9:33 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

Code: Select all

#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:

Code: Select all

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?
Last edited by tgaweda on Mon Nov 13, 2017 9:52 pm, edited 1 time in total.
User avatar
fracz
Posts: 1603
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Mon Nov 13, 2017 9:39 pm

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
Posts: 41
Joined: Mon Nov 13, 2017 9:21 pm

Tue Nov 14, 2017 7:37 am

Poszło! Dziękuję za wskazówki.
Neavvy
Posts: 64
Joined: Thu May 11, 2017 8:19 pm

Tue Nov 14, 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:
Attachments
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) Viewed 1616 times
User avatar
fracz
Posts: 1603
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Tue Nov 14, 2017 8:46 pm

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
Posts: 64
Joined: Thu May 11, 2017 8:19 pm

Wed Nov 15, 2017 5:26 pm

Proszę:
Attachments
bez_hasla.png
bez_hasla.png (81.7 KiB) Viewed 1556 times
Last edited by Neavvy on Wed Nov 15, 2017 5:40 pm, edited 1 time in total.
User avatar
pzygmunt
Posts: 7077
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Wed Nov 15, 2017 5:32 pm

Neavvy wrote:
Wed Nov 15, 2017 5:26 pm
Proszę:
Rozdajesz hasła
Neavvy
Posts: 64
Joined: Thu May 11, 2017 8:19 pm

Wed Nov 15, 2017 5:40 pm

Fakt, w ferworze zapomniałem, że znajdują się tam hasła, dzięki za uwagę
Neavvy
Posts: 64
Joined: Thu May 11, 2017 8:19 pm

Fri Nov 17, 2017 3:38 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
Post Reply