Linki bezpośrednie

Sebo_18
Posts: 1
Joined: Tue Feb 04, 2020 8:04 pm

Post

Można skorzystać z bezpośrednich linków do urządzeń:
1. Logujecie się do swojego konta SUPLA na https://cloud.supla.org
2. Klikacie Automatyka -> linki bezpośrednie -> Utwórz nowy link bezpośredni
3. Wybieracie dostępne akcje: Odczyt Włącz Wyłącz
4. Kopiujecie wygenerowany link i klikacie zapisz
5. tera testy:
- z przeglądarki wchodzicie na adresy:
https://svr.supla.org/direct/xxx/xxxxxx/read
https://svr.supla.org/direct/xxx/xxxxxx/turn-on
https://svr.supla.org/direct/xxx/xxxxxx/turn-off
Wchodząc na te linki można włączać i wyłączać urządzenia.

Chodzi o napisanie programu, za pomocą którego korzystając z tych linków
można będzie sterować urządzeniami (można skorzystać z biblioteki curl).


Proszę o pomoc!
Mam za zadanie napisać taki program, ale nie mam pojęcia jak się za to zabrać, od czego zacząć itd ponieważ jestem noga z programowania a sprawa jest że tak powiem gardłowa. Mam nadzieję że ktoś mi pomoże to przezwyciężyć bo jest mi to bardzo ale to bardzo potrzebne.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Jeśli egzamin na AGH to tu lepiej nie pytaj ;)
SUPLA.... Nareszcie w domu.
szym3k
Posts: 270
Joined: Mon May 15, 2017 10:32 am

Post

pzygmunt wrote: Tue Feb 04, 2020 8:19 pm Jeśli egzamin na AGH to tu lepiej nie pytaj ;)
:lol: :lol: :lol: :lol:

W jakim języku? Tak na prawdę tu nie trzeba nic pisać wystarczy parę buttonów w html i będzie działało w każdej przeglądarce.
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Albo excela odpalić 🤣
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
lesny8
Posts: 3132
Joined: Mon Dec 11, 2017 9:43 pm
Has thanked: 10 times
Been thanked: 9 times

Post

pzygmunt wrote: Tue Feb 04, 2020 8:19 pm Jeśli egzamin na AGH to tu lepiej nie pytaj ;)
😂🤣
Sebo_18 wrote: Tue Feb 04, 2020 8:16 pm ...
Proszę o pomoc!
Mam za zadanie napisać taki program, ale nie mam pojęcia jak się za to zabrać, od czego zacząć itd ponieważ jestem noga z programowania a sprawa jest że tak powiem gardłowa. Mam nadzieję że ktoś mi pomoże to przezwyciężyć bo jest mi to bardzo ale to bardzo potrzebne.
Nie napisałeś w jakim języku ma być ten program?
Niemniej jednak gotowca się nie spodziewaj bo jeśli jest tak jak @pzygmunt napisał wyżej to nie zaliczysz ;)
SOP 2023 :heavy_check_mark:
SOP 2024 :heavy_check_mark:
Czekam na kolejne Supla Offline Party :upside_down_face:
🧩: 🔑cz->b ⛴️+ila
User avatar
Xoggo
Posts: 182
Joined: Sun Mar 29, 2020 10:03 pm
Location: Zbąszynek

Post

Panowie, ja nie jestem z AGH tylko z SGGW:) 8-)
Ale tak na poważnie i w temacie mam prośbę, czy moglibyście mnie trochę nakierować?

Code: Select all

#include <SPI.h> 
#include <SuplaDevice.h> 
#include <supla/network/esp_wifi.h>
          Supla::ESPWifi wifi("xxxx", "xxxx");  
#include <WiFiClientSecure.h>
          const char* host = "svr31.supla.org";
          const int httpsPort = 443;
          String url = "";
          byte a=0;
          char Link_1[40]="/direct/xxx/xxx/toggle";

void setup() {
   Serial.begin(115200);
   char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {xxxx}; 
   char GUID[SUPLA_GUID_SIZE] = {yyyyC};
   char SERVER[] = "svr31.supla.org";
   char EMAIL[] = "[email protected]";     

   pinMode(5, INPUT_PULLUP); 

   SuplaDevice.setName("D-LINK TEST");                                     
   WiFi.softAPdisconnect(true);                                                
   SuplaDevice.begin(GUID, SERVER, EMAIL, AUTHKEY); 

   while ((!(WiFi.status() == WL_CONNECTED))){
   delay(500);
   Serial.print(".");}
   Serial.println("Połączony z WiFi");  
 }

void loop() {
   SuplaDevice.iterate();
 //-----------------------------------
   if ( digitalRead(5) == HIGH){
   a=0; 
   }
   if ( digitalRead(5) == LOW && a==0)  {
    url = Link_1;
    direct_Link() ;
     a=1; 
    } 
   //-----------------------------------
}
 
void direct_Link() {

  WiFiClientSecure client;
  Serial.print(" connecting to ");
  Serial.println(host);
  if (!client.connect(host, httpsPort)) {
    Serial.println("connection failed");
    return;
  }
  Serial.print("requesting URL: ");
  Serial.println(url);

  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "User-Agent: BuildFailureDetectorESP8266\r\n" +
               "Connection: close\r\n\r\n");

  Serial.println("request sent");
  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      Serial.println("headers received");
      break;
    }
  }
  String line = client.readStringUntil('}');
  line = line + "}";
  Serial.println("reply was:");
  Serial.println("==========");
  Serial.println(line);
  Serial.println("==========");
  Serial.println("closing connection");
} 
Po "aktywowaniu" GPIO5 wypluwa, że "connection failed".

D-Link.JPG
You do not have the required permissions to view the files attached to this post.
Last edited by Xoggo on Tue May 05, 2020 5:42 am, edited 1 time in total.
piomar2
Posts: 369
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Post

Po prawidłowych wpisach w kodzie program działa prawidłowo (nie sądzę, że to wina serwera).
ok.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Xoggo
Posts: 182
Joined: Sun Mar 29, 2020 10:03 pm
Location: Zbąszynek

Post

piomar2 wrote: Tue May 05, 2020 5:07 am Po prawidłowych wpisach w kodzie
Hmm, więc co w moim (Twoim) kodzie jest nieprawidłowego? :?
piomar2
Posts: 369
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Post

Coś źle wpisujesz...
Pobrałeś: char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {xxxx};
char GUID[SUPLA_GUID_SIZE] = {yyyyC};
???
User avatar
Xoggo
Posts: 182
Joined: Sun Mar 29, 2020 10:03 pm
Location: Zbąszynek

Post

Tak, no przecież urządzenie mi się poprawnie rejestruje w Cloudzie, tylko wywołanie samego linka nie chce się posłuchać.

Return to “Pomoc”