Supla Button 2.0 i kolejne wersje...

cino111
Posty: 714
Rejestracja: pn maja 07, 2018 8:00 pm

Jaką płytkę ustawiles? Jakie parametry wgrywania?
Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

Pod tym wątkiem kolejna wersja SUPLA BUTTON: viewtopic.php?f=9&t=5153#p46754
Obrazek
Pawele
Posty: 176
Rejestracja: wt wrz 05, 2017 5:59 pm

cino111 pisze: czw sie 08, 2019 11:31 am Jaką płytkę ustawiles? Jakie parametry wgrywania?
Jeszcze nic nie ustawiałem.. Po prostu wkleiłem kod i próbowałem użyć opcji "zweryfikowania" kodu.
newada890
Posty: 8
Rejestracja: sob wrz 02, 2017 6:40 pm

Witam na jakich ustawieniach w arduino ide wgrac suple button na esp 01 bo zadna wersja nie wykonuje sceny czy blad tkwi w cudzyslowiach maja byc czy nie ???
String url_1 = "/api/scenes/execute/XXXXXXX-XXXXXXXXXX-XXXXXXXXX"; //Adres PUBLICZNY SCENY 1
String Klucz_dostepu_1 = "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
CrazyPonkeyMen
Posty: 11
Rejestracja: wt wrz 05, 2017 8:31 pm

Z tego co ustaliłem to żadna z wymienionych wersji oprogramowania nie będzie działać (przynajmniej na najnowszych bibliotekach) z powodu braku ustalonego fingerprint'a certyfikatu serwera.
Po linijce
WiFiClientSecure client;
w każdej wersji oprogramowania należy dodać
client.setFingerprint("finterprint certyfikatu");
Przykładowe zastosowanie w przypadku wersji 2.0 wrzucam w załączniku, użyty certyfikat jest do strony supla.fracz.com. Implementacja wygląda tak samo w przypadku każdej wersji oprogramowania, którą widziałem.

Potencjalnie problem naprawi również wyłączenie trybu HTTPS, do tego wystarczy zamienić linijkę
WiFiClientSecure client;
na
WiFiClient client;
Nie sprawdzałem na kontrolerze, ale w teorii również powinno zadziałać, polecam wtedy użyć publicznego linku niewymagającego autoryzacji. Myślę że może to również pomóc w usunięciu części opóźnienia.
Załączniki
SUPLA_BUTTON_FINGERPRINT.zip
(3.4 KiB) Pobrany 204 razy
Rem125
Posty: 125
Rejestracja: pn mar 26, 2018 3:00 pm

Może pytanie banalne ale jest to mój pierwszy kontakt z arduino więc proszę wybaczcie

witam mam pytanie odnośnie przycisku "Supla Button JSON ROLLER SHUTTER" próbuję wgrać do mudułu ESP 01 8266 v2 i przy wgrywaniu czepia się "#include <ArduinoJson.h>" brak pliku lub katalogu.

nie wiem czy muszę wpisać w to miejsce jakąś swoją ścieżkę dostępu czy też zmienić nazwę pliku lub nazwę Katalogu
Rem125
Posty: 125
Rejestracja: pn mar 26, 2018 3:00 pm

Już sobie poradziłem po prostu musiałem wgrać odpowiednią wersję biblioteki
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

CrazyPonkeyMen pisze: wt wrz 17, 2019 4:24 pm Z tego co ustaliłem to żadna z wymienionych wersji oprogramowania nie będzie działać (przynajmniej na najnowszych bibliotekach) z powodu braku ustalonego fingerprint'a certyfikatu serwera.
Po linijce
WiFiClientSecure client;
w każdej wersji oprogramowania należy dodać
client.setFingerprint("finterprint certyfikatu");
Przykładowe zastosowanie w przypadku wersji 2.0 wrzucam w załączniku, użyty certyfikat jest do strony supla.fracz.com. Implementacja wygląda tak samo w przypadku każdej wersji oprogramowania, którą widziałem.

Potencjalnie problem naprawi również wyłączenie trybu HTTPS, do tego wystarczy zamienić linijkę
WiFiClientSecure client;
na
WiFiClient client;
Nie sprawdzałem na kontrolerze, ale w teorii również powinno zadziałać, polecam wtedy użyć publicznego linku niewymagającego autoryzacji. Myślę że może to również pomóc w usunięciu części opóźnienia.
A skąd wziąść fingeprint serwera svr5 ???
za cholerę mi to nie działa :(

Kod: Zaznacz cały

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <DoubleResetDetector.h> //Bilioteka by Stephen Denne

// Number of seconds after reset during which a 
// subseqent reset will be considered a double reset.
#define DRD_TIMEOUT 5

// RTC Memory Address for the DoubleResetDetector to use
#define DRD_ADDRESS 0

DoubleResetDetector drd(DRD_TIMEOUT, DRD_ADDRESS);

//********************************************************PARAMETRY KONFIGURACYJNE****************************************************************

const char* ssid = "xxx";
const char* password = "kerxxx9";
const char* WiFi_hostname = "Supla_BUTTON_V2";

byte Adres_z_DHCP = 1;   //1 = DHCP, 0 = Statyczne_IP
IPAddress staticIP(192,168,1,100);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);

String url_read = "/direct528/zjGYgji5NWYNx/read";
const char* host = "svr5.supla.org";
String url_1 = "/direct/555/sdfsdfji5NWYNx/turn-off"; //link 1przykładowy 
String url_2 = "/direct/555/zjGYgji5NWYNx/turn-on"; //link 2 przykładowy 

//https://svr5.supla.org/direct/528/zjGYgji5NWYNx/turn-off   - przykładowo link bezpośredni tak wygląda


const int httpsPort = 443; //Port serwera

const unsigned Czas_max_timeout = 40000; //Czas TIMEOUT szukania WIFI w milisekundach = 10 sekund      

const byte debug = 1; //1 = Włączone debugowanie, 0 = Wyłączone

//************************************************************************************************************************************************

byte supla_mode = 0;

void setup()
{
  if (debug == 1){
    Serial.begin(115200);
    Serial.println();
    Serial.println();
    Serial.println();
  }
  if (drd.detectDoubleReset()) {
    supla_mode = 2;
  } else {
    supla_mode = 1;
  }
  
  for (int i=0; i <= 1000; i++){
    delay(1);
    drd.loop();
    if (i == 500){
      WiFi.hostname(WiFi_hostname); 
      WiFi.begin(ssid, password);
      if (Adres_z_DHCP == 0){
        WiFi.config(staticIP, gateway, subnet);
      }
    }
  // Call the double reset detector loop method every so often,
  // so that it can recognise when the timeout expires.
  // You can also call drd.stop() when you wish to no longer
  // consider the next reset as a double reset.
  }
  drd.stop();
}

void loop()
{
  if (debug == 1){
    Serial.print("Supla mode = ");
    Serial.println(supla_mode);
  }
  
  for (unsigned timeout=0; timeout <= Czas_max_timeout; timeout++){
    if (WiFi.status() != WL_CONNECTED){
        delay(1);
    }    
    else
    {
      timeout = Czas_max_timeout;
      if (debug == 1){
        Serial.println("Polaczono z WIFI");
        Serial.print("MAC:");Serial.print(WiFi.macAddress()); 
        Serial.print("     IP:");Serial.print(WiFi.localIP());
        Serial.print("     M:");Serial.print(WiFi.subnetMask());
        Serial.print("     GW:");Serial.println(WiFi.gatewayIP());
        Serial.println(String("GET ") + url_1 + " HTTP/1.1\r\n" +
        "Host: " + host + "\r\n" +
        "User-Agent: SuplaButtonESP8266\r\n" +
        "Connection: close\r\n\r\n");
      }
    }
  }
  if (WiFi.status() == WL_CONNECTED){
    WiFiClientSecure client;
    //client.setFingerprint("???????");         // A SKĄD TO WZIĄŚĆ ???
    if (client.connect(host, httpsPort)) {
      if (debug == 1){
        Serial.print("Poloczono z ");
        Serial.println(host);
        
      }
      if (supla_mode == 1){
        client.println(String("GET ") + url_1 + " HTTP/1.1\r\n" +
        "Host: " + host + "\r\n" +
        "User-Agent: SuplaButtonESP8266\r\n" +
        "Connection: close\r\n\r\n");
      }
      if (supla_mode == 2){
        client.println(String("GET ") + url_2 + " HTTP/1.1\r\n" +
        "Host: " + host + "\r\n" +
        "User-Agent: SuplaButtonESP8266\r\n" +
        "Connection: close\r\n\r\n");
 
      }
      String line = client.readStringUntil('\r');
      if (line == "HTTP/1.1 204 No Content"){
        Serial.println("Wykonano link");
//        error = 0;
       }
    }
    if (debug == 1){
      Serial.println("Koniec polaczenia");
    }
  }
  WiFi.disconnect();
  if (debug == 1){
    Serial.print("Dobranoc");
  }
  ESP.deepSleep(0);
}
Ostatnio zmieniony sob lis 23, 2019 7:48 pm przez QLQ, łącznie zmieniany 1 raz.
jak coś nie działa to włącz zasilanie.....
krycha88
Posty: 5187
Rejestracja: pt lis 16, 2018 7:25 am
Kontakt:

QLQ pisze: sob lis 23, 2019 7:36 pm
CrazyPonkeyMen pisze: wt wrz 17, 2019 4:24 pm Z tego co ustaliłem to żadna z wymienionych wersji oprogramowania nie będzie działać (przynajmniej na najnowszych bibliotekach) z powodu braku ustalonego fingerprint'a certyfikatu serwera.
Po linijce
WiFiClientSecure client;
w każdej wersji oprogramowania należy dodać
client.setFingerprint("finterprint certyfikatu");
Przykładowe zastosowanie w przypadku wersji 2.0 wrzucam w załączniku, użyty certyfikat jest do strony supla.fracz.com. Implementacja wygląda tak samo w przypadku każdej wersji oprogramowania, którą widziałem.

Potencjalnie problem naprawi również wyłączenie trybu HTTPS, do tego wystarczy zamienić linijkę
WiFiClientSecure client;
na
WiFiClient client;
Nie sprawdzałem na kontrolerze, ale w teorii również powinno zadziałać, polecam wtedy użyć publicznego linku niewymagającego autoryzacji. Myślę że może to również pomóc w usunięciu części opóźnienia.
A skąd wziąść fingeprint serwera svr5 ???
Zamiast setFingerprint() użyj setInsecure() i nie musisz nic więcej podawać
https://gui-generic-builder.supla.io/
Awatar użytkownika
QLQ
Posty: 2276
Rejestracja: ndz wrz 03, 2017 9:13 am
Lokalizacja: Koszalin

krycha88 pisze: sob lis 23, 2019 7:44 pm
QLQ pisze: sob lis 23, 2019 7:36 pm
CrazyPonkeyMen pisze: wt wrz 17, 2019 4:24 pm Z tego co ustaliłem to żadna z wymienionych wersji oprogramowania nie będzie działać (przynajmniej na najnowszych bibliotekach) z powodu braku ustalonego fingerprint'a certyfikatu serwera.
Po linijce w każdej wersji oprogramowania należy dodać

Przykładowe zastosowanie w przypadku wersji 2.0 wrzucam w załączniku, użyty certyfikat jest do strony supla.fracz.com. Implementacja wygląda tak samo w przypadku każdej wersji oprogramowania, którą widziałem.

Potencjalnie problem naprawi również wyłączenie trybu HTTPS, do tego wystarczy zamienić linijkę

na


Nie sprawdzałem na kontrolerze, ale w teorii również powinno zadziałać, polecam wtedy użyć publicznego linku niewymagającego autoryzacji. Myślę że może to również pomóc w usunięciu części opóźnienia.
A skąd wziąść fingeprint serwera svr5 ???
Zamiast setFingerprint() użyj setInsecure() i nie musisz nic więcej podawać

DZIĘKUJĘ - TAKA JEDNA LINIJKA MI ZABRAŁA 2H -
jak coś nie działa to włącz zasilanie.....
ODPOWIEDZ

Wróć do „Projekty użytkowników”