Rejestracja Arduino

marcin_77
Posty: 15
Rejestracja: ndz sie 08, 2021 1:23 pm

Witam

Posiadam uruchomiony SUPLA-CLOUD w sieci LAN z najnowszego obrazu dla Raspberry z Waszej strony.
Podczas próby podłączenia nowego urządzenia (Arduino Mega 2560) Arduino nie pojawia się w sekcji "urządzenia we/wy", a monitor portu szeregowego Arduino wyświetla następujący log:

Kod: Zaznacz cały

Connecting to network...
DHCP connection result: 1
localIP: 192.168.1.7
subnetMask: 255.255.255.0
gatewayIP: 192.168.1.100
dnsServerIP: 192.168.1.100
Using Supla protocol version 12
Current status: [5] SuplaDevice initialized
Establishing connection with: 192.168.1.6 (port: 2015)
Connected to Supla Server
Current status: [10] Register in progress
Sending: [53 55 50 4C 41 C 1 0 0 0 45 0 0 0 7A 2 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 30 31 33 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 52 44 55 49 4E 4F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 73 65 72 20 53 57 2C 20 6C 69 62 20 32 2E 33 2E 35 0 0 0 31 39 32 2E 31 36 38 2E 31 2E 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 54 B 0 0 EF 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 54 B 0 0 EF 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ]
Sending: [53 55 50 4C 41 ]
Establishing connection with: 192.168.1.6 (port: 2015)
Connected to Supla Server
Sending: [53 55 50 4C 41 C 2 0 0 0 45 0 0 0 7A 2 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 30 31 33 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 52 44 55 49 4E 4F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 73 65 72 20 53 57 2C 20 6C 69 62 20 32 2E 33 2E 35 0 0 0 31 39 32 2E 31 36 38 2E 31 2E 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 54 B 0 0 EF 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 54 B 0 0 EF 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 ]
po czym sekcja:
Connected to Supla Server
Sending 53 55 50 4C 41 C 2 0 0 ...
jest wysyłana w pętli.

Oczywiście w Arduino zostały wcześniej wprowadzone poprawne ustawienia (GUID, Serwer, ID lokalizacji, Hasło lokalizacji).
Rozumiem, że GUID i Hasło lokalizacji podajemy szesnastkowo? Zresztą, nawet wprowadzając te wartości jako tekst, jest ten sam problem.

Mój kod Arduino (wg przykładu SequenceButton) :

Kod: Zaznacz cały

#include <SuplaDevice.h>
#include <supla/control/relay.h>
#include <supla/control/sequence_button.h>

// Choose proper network interface for your card:
#ifdef ARDUINO_ARCH_AVR
  // Arduino Mega with EthernetShield W5100:
  #include <supla/network/ethernet_shield.h>
  // Ethernet MAC address
  uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
  Supla::EthernetShield ethernet(mac);

  // Arduino Mega with ENC28J60:
  // #include <supla/network/ENC28J60.h>
  // Supla::ENC28J60 ethernet(mac);
#elif defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
  // ESP8266 and ESP32 based board:
  #include <supla/network/esp_wifi.h>
  Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");
#endif


void setup() {

  Serial.begin(115200);

  // Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
  char GUID[SUPLA_GUID_SIZE] = {0x31};

  // Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
  char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x61,0x30,0x31,0x33};
 
  /*
   * Having your device already registered at cloud.supla.org,
   * you want to change CHANNEL sequence or remove any of them,
   * then you must also remove the device itself from cloud.supla.org.
   * Otherwise you will get "Channel conflict!" error.
   */
    
  auto secretRelay = new Supla::Control::Relay(30, false); // Low level trigger relay on pin 30 
  auto alarmRelay = new Supla::Control::Relay(31, false);  // Low level trigger relay on pin 31
  auto seqButton = new Supla::Control::SequenceButton(28, true, true); // Button on pin 28 with internal pullUp 
                                                                       // and LOW is considered as "pressed" state

  // Sequence of lenghts [ms] of button being presset, released, pressed, released, etc.
  // Aplication will print on Serial recorded sequence, so use it to record your rhythm and put it here
  uint16_t sequence[30] = {90, 590, 90, 140, 90, 290, 90, 230, 90, 140, 90};

  seqButton->setSequence(sequence);
  seqButton->setMargin(0.5);  // we allow +- 50% deviation of state length compared to matching sequence

  // Button will trigger secretRelay when correct rhythm will be detected or alarmRelay otherwise
  seqButton->addAction(Supla::TURN_ON, secretRelay, Supla::ON_SEQUENCE_MATCH);
  seqButton->addAction(Supla::TURN_ON, alarmRelay, Supla::ON_SEQUENCE_DOESNT_MATCH);
 
  /*
   * SuplaDevice Initialization.
   * Server address is available at https://cloud.supla.org 
   * If you do not have an account, you can create it at https://cloud.supla.org/account/create
   * SUPLA and SUPLA CLOUD are free of charge
   * 
   */
 
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    "192.168.1.6",  // SUPLA server address
                    "1",   // Email address used to login to Supla Cloud
                    AUTHKEY);          // Authorization key
    
}

void loop() {
  SuplaDevice.iterate();
}
Czy gdzieś robię błąd w kodzie, że nie rejestruje mi nowego urządzenia w SUPLA-CLOUD na RaspberryPi?
Dodam jeszcze, że ten sam kod (z odpowiednimi danymi logowania) działa bez problemu na Waszym cloudzie (svr9.suppla.org).
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Wygląda jakby serwer nie odpowiadał na wiadomość rejestrującą urządzenie.
Gdyby było coś nie tak z danymi to serwer odpowiadałby błędem a tutaj nic nie widać
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

@marcin_77 na pewno na Twoim serwerze lokalnym email ma wartość 1? Czy to tylko taki sposób na jego ukrycie?
@klew czy GUID może być jednoznakowy? Czy musi być 32 znakowy?
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
Awatar użytkownika
lesny8
Posty: 2808
Rejestracja: pn gru 11, 2017 9:43 pm

marcin_77 pisze: ndz sie 08, 2021 1:40 pm ...
Posiadam uruchomiony SUPLA-CLOUD w sieci LAN z najnowszego obrazu dla Raspberry z Waszej strony.
...
W jakiej wersji jest tam Cloud?
Czekam na kolejne Supla Offline Party 👍
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Goral64 pisze: ndz sie 08, 2021 4:33 pm @marcin_77 na pewno na Twoim serwerze lokalnym email ma wartość 1? Czy to tylko taki sposób na jego ukrycie?
@klew czy GUID może być jednoznakowy? Czy musi być 32 znakowy?
Nie są to poprawne wartości, ale soft sobie chyba jakoś z tym radzi. Serwer powinien chyba jakoś odpowiedzieć. Chyba że struktura wysłanej ramki jest zupełnie skopana i nie wie co się do niego mówi ;)
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

klew pisze: ndz sie 08, 2021 4:56 pm Nie są to poprawne wartości, ale soft sobie chyba jakoś z tym radzi. Serwer powinien chyba jakoś odpowiedzieć. Chyba że struktura wysłanej ramki jest zupełnie skopana i nie wie co się do niego mówi ;)
@marcin_77 no to pozostają logi serwera supli
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
marcin_77
Posty: 15
Rejestracja: ndz sie 08, 2021 1:23 pm

Goral64 pisze: ndz sie 08, 2021 4:33 pm @marcin_77 na pewno na Twoim serwerze lokalnym email ma wartość 1? Czy to tylko taki sposób na jego ukrycie?
@klew czy GUID może być jednoznakowy? Czy musi być 32 znakowy?
Adres email ma domyślną wartość, czyli pi@raspberrypi (lecz nie zmienia to faktu, że Arduino nadal nie jest rejestrowane).
Jednakże z opisu na zainstalowanym lokalnie SUPLA-CLOUD w sekcji Arduino, jest wyraźnie w 5 kroku napisane, żeby uzupełnić kod o następujące dane: GUID, Serwer, ID lokalizacji, Hasło lokalizacji - co jest zresztą zgodne z kodem:

Kod: Zaznacz cały

SuplaDevice.begin([b]GUID[/b],              // Global Unique Identifier 
                    "[b]192.168.1.6[/b]",  // SUPLA server address
                    "[b]1[/b]",   // Email address used to login to Supla Cloud
                    [b]AUTHKEY[/b]);          // Authorization key
W SUPLA-CLOUD zainstalowanym lokalnie ID lokalizacji=1 oraz GUID=1 - chyba, że coś źle rozumiem?
Zatem trzecia wartość po przecinku to ID lokalizacji (na serwerze suppla.org.pl jest to adres email użytkownika).
Awatar użytkownika
Goral64
Posty: 3131
Rejestracja: pt gru 27, 2019 6:22 pm
Lokalizacja: Żerniki Wrocławskie
Kontakt:

marcin_77 pisze: ndz sie 08, 2021 5:52 pm
Goral64 pisze: ndz sie 08, 2021 4:33 pm @marcin_77 na pewno na Twoim serwerze lokalnym email ma wartość 1? Czy to tylko taki sposób na jego ukrycie?
@klew czy GUID może być jednoznakowy? Czy musi być 32 znakowy?
Adres email ma domyślną wartość, czyli pi@raspberrypi (lecz nie zmienia to faktu, że Arduino nadal nie jest rejestrowane).
Jednakże z opisu na zainstalowanym lokalnie SUPLA-CLOUD w sekcji Arduino, jest wyraźnie w 5 kroku napisane, żeby uzupełnić kod o następujące dane: GUID, Serwer, ID lokalizacji, Hasło lokalizacji - co jest zresztą zgodne z kodem:

Kod: Zaznacz cały

SuplaDevice.begin([b]GUID[/b],              // Global Unique Identifier 
                    "[b]192.168.1.6[/b]",  // SUPLA server address
                    "[b]1[/b]",   // Email address used to login to Supla Cloud
                    [b]AUTHKEY[/b]);          // Authorization key
W SUPLA-CLOUD zainstalowanym lokalnie ID lokalizacji=1 oraz GUID=1 - chyba, że coś źle rozumiem?
Zatem trzecia wartość po przecinku to ID lokalizacji (na serwerze suppla.org.pl jest to adres email użytkownika).
Dokładnie. Źle rozumiesz. Tamten opis o uzupełnieniu danych dotyczy starej wersji biblioteki SuplaDevice.
W nowej podajesz zgodnie z komentarzami w kodzie "Email address used to login to Supla Cloud" czyli swój adres email przypisany do Twojego konta w Twoim lokalnym supla cloudzie.
GUID to jest zestaw 32 znaków, unikalnych dla Twojego urządzenia. Możesz sobie go sam "wygenerować" wklepując z palca 16 par znaków z zakresu od 0 do 9 i od A do F. Podobnie z AUTHKEY.
Wtedy dane będą poprawne dla serwera.

Możesz te klucze wygenerować sobie i skopiować z z publicznego serwera supli
GUID - https://www.supla.org/pl/arduino/get-guid
AUTHKEY - https://www.supla.org/pl/arduino/get-authkey
Widzimy się na Supla Offline Party Season 2 :D

Obrazek
marcin_77
Posty: 15
Rejestracja: ndz sie 08, 2021 1:23 pm

Goral64 pisze: ndz sie 08, 2021 6:06 pm
marcin_77 pisze: ndz sie 08, 2021 5:52 pm
Goral64 pisze: ndz sie 08, 2021 4:33 pm @marcin_77 na pewno na Twoim serwerze lokalnym email ma wartość 1? Czy to tylko taki sposób na jego ukrycie?
@klew czy GUID może być jednoznakowy? Czy musi być 32 znakowy?
Adres email ma domyślną wartość, czyli pi@raspberrypi (lecz nie zmienia to faktu, że Arduino nadal nie jest rejestrowane).
Jednakże z opisu na zainstalowanym lokalnie SUPLA-CLOUD w sekcji Arduino, jest wyraźnie w 5 kroku napisane, żeby uzupełnić kod o następujące dane: GUID, Serwer, ID lokalizacji, Hasło lokalizacji - co jest zresztą zgodne z kodem:

Kod: Zaznacz cały

SuplaDevice.begin([b]GUID[/b],              // Global Unique Identifier 
                    "[b]192.168.1.6[/b]",  // SUPLA server address
                    "[b]1[/b]",   // Email address used to login to Supla Cloud
                    [b]AUTHKEY[/b]);          // Authorization key
W SUPLA-CLOUD zainstalowanym lokalnie ID lokalizacji=1 oraz GUID=1 - chyba, że coś źle rozumiem?
Zatem trzecia wartość po przecinku to ID lokalizacji (na serwerze suppla.org.pl jest to adres email użytkownika).
Dokładnie. Źle rozumiesz. Tamten opis o uzupełnieniu danych dotyczy starej wersji biblioteki SuplaDevice.
W nowej podajesz zgodnie z komentarzami w kodzie "Email address used to login to Supla Cloud" czyli swój adres email przypisany do Twojego konta w Twoim lokalnym supla cloudzie.
GUID to jest zestaw 32 znaków, unikalnych dla Twojego urządzenia. Możesz sobie go sam "wygenerować" wklepując z palca 16 par znaków z zakresu od 0 do 9 i od A do F. Podobnie z AUTHKEY.
Wtedy dane będą poprawne dla serwera.

Możesz te klucze wygenerować sobie i skopiować z z publicznego serwera supli
GUID - https://www.supla.org/pl/arduino/get-guid
AUTHKEY - https://www.supla.org/pl/arduino/get-authkey
No dobrze, a czy zatem AUTHKEY poza kodem w Arduino, nie powinien być jeszcze wprowadzony gdzieś na serwerze? Bo jeśli nie, to autoryzacja Arduino następuje jedynie poprzez podanie adresu email?
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Authkey jest zapamiętywany przez serwer podczas pierwszej rejestracji urządzenia
Widzimy się na Supla Offline Party vol. 2 :!:
ODPOWIEDZ

Wróć do „supla-server”