Aktualizacja SuplaDevice

User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

andrew01 wrote: Sat Dec 14, 2019 9:47 pm To nie jest kwestia samych termometrów ale liczby urządzeń/kanałów, gdy mam 21 to jest ok, dodanie 22 powoduje, że już się nie łączy.
Jaką płytkę masz? Arduino czy coś na ESP?
Najlepsze suple dla Twojego domu :mrgreen:
andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

klew wrote: Sat Dec 14, 2019 10:06 pm
andrew01 wrote: Sat Dec 14, 2019 9:47 pm To nie jest kwestia samych termometrów ale liczby urządzeń/kanałów, gdy mam 21 to jest ok, dodanie 22 powoduje, że już się nie łączy.
Jaką płytkę masz? Arduino czy coś na ESP?
Arduino Mega + W5100
andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

Poniżej testowy soft, ten działa - trzy ostatnie elementy zakomentowane:
#include <SPI.h>
#include <SuplaDevice.h>
#include <supla/network/ethernet_shield.h>

// Ethernet MAC address
uint8_t mac[6] = {0xA0, 0xB1, 0xC2, 0xD3, 0xE4, 0xF5};
Supla::EthernetShield ethernet(mac);

void setup() {

Serial.begin(9600);
while (!Serial) {}

// Replace the falowing GUID
char GUID[SUPLA_GUID_SIZE] = {};

// Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {};

SuplaDevice.addRelay(22, 23, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(24, 25, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(26, 27, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(28, 29, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(30, 31, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(32, 33, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);

SuplaDevice.addRelay(34, 35, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(36, 37, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(54, 55, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(56, 57, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);

SuplaDevice.addRelay(58, 59, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(60, 61, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(62, 63, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(64, 65, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(66, 67, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
SuplaDevice.addRelay(68, 69, false, true, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);

SuplaDevice.addDS18B20Thermometer();
SuplaDevice.addDS18B20Thermometer();
SuplaDevice.addDS18B20Thermometer();
SuplaDevice.addDS18B20Thermometer();
SuplaDevice.addDS18B20Thermometer();
//SuplaDevice.addDS18B20Thermometer();
//SuplaDevice.addDS18B20Thermometer();
//SuplaDevice.addDS18B20Thermometer();

SuplaDevice.begin(GUID, // Global Unique Identifier
"svr21.supla.org", // SUPLA server address
"........@......", // Email address used to login to Supla Cloud
AUTHKEY); // Authorization key // Location Password
}

void loop()
{
SuplaDevice.iterate();
}
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

andrew01 wrote: Sat Dec 14, 2019 10:20 pm Poniżej testowy soft, ten działa - trzy ostatnie elementy zakomentowane:
A co masz na Serial? Wrzuciłem ten kod na Wemosa i śmiga. Na Arduino mega tylko skompilowalem i wrzuciłem na urządzenie, ale gdzieś mi się kabel sieciowy zapodział i widzę tylko tyle, że program dochodzi do miejsca połączenia z serwerem i tam utyka.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

lukfud wrote: Sat Dec 14, 2019 8:03 pm
klew wrote: Sat Dec 14, 2019 7:16 pm Sprawdzę u siebie wieczorem. Co masz w tej funkcji?
Wyświetlałem status i aktualizowałem stany przekaźników po utracie połączenia. Mam też kilka sekwencji migania diody w zależności od kodu statusu, dlatego potrzebowałem przypisania do zmiennej.

Teraz z tego co zauważyłem na develop, to nie ma potrzeby aktualizacji stanów w tym miejscu, ale zmienną do migania nadal potrzebuję.

Po kilku testach rezultat jest taki:

Jeśli nie dodam

Code: Select all

SuplaDevice.setStatusFuncImpl(&status_func);
to wyświetlają się statusy w serialu (te zaszyte w bibliotece), ale nie mam swojej zmiennej.

Jeśli dodam to "wywołanie" i funkcję

Code: Select all

void status_func(int status, const char *msg) {
  sNumber = status; }
to mam swoją zmienną ale nie wyświetlają się statusy w serialu.

A jak wyrzucę statusy na serial w tej funkcji to niestety kończy się tak jak napisałem na początku.
U mnie zjade się to pracować poprawnie.
Prześlij proszę cały kod tego prorgamu do mnie
Najlepsze suple dla Twojego domu :mrgreen:
andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

klew wrote: Sat Dec 14, 2019 11:58 pm
andrew01 wrote: Sat Dec 14, 2019 10:20 pm Poniżej testowy soft, ten działa - trzy ostatnie elementy zakomentowane:
A co masz na Serial? Wrzuciłem ten kod na Wemosa i śmiga. Na Arduino mega tylko skompilowalem i wrzuciłem na urządzenie, ale gdzieś mi się kabel sieciowy zapodział i widzę tylko tyle, że program dochodzi do miejsca połączenia z serwerem i tam utyka.

Code: Select all

12:41:49.384 -> Connecting to network...
12:41:53.885 -> localIP: 192.168.2.175
12:41:53.920 -> subnetMask: 255.255.255.0
12:41:53.955 -> gatewayIP: 192.168.2.1
12:41:53.990 -> dnsServerIP: 192.168.2.1
12:41:53.990 -> Using protocol version 8
12:41:54.024 -> Current status: SuplaDevice initialized
12:41:54.058 -> Current status: Not connected
12:41:54.093 -> Establishing connection with: svr21.supla.org (port: 2015)
12:42:26.298 -> Connection fail. Server: svr21.supla.org
12:42:28.310 -> Current status: Not connected
12:42:28.345 -> Establishing connection with: svr21.supla.org (port: 2015)
12:42:28.449 -> Connected
12:42:28.449 -> Current status: Register in progress
12:44:28.600 -> Current status: Not connected
12:44:28.636 -> Establishing connection with: svr21.supla.org (port: 2015)
12:44:28.704 -> Connection fail. Server: svr21.supla.org
12:44:30.761 -> Current status: Not connected
12:44:30.795 -> Establishing connection with: svr21.supla.org (port: 2015)
12:44:30.900 -> Connected
12:44:30.900 -> Current status: Register in progress
12:46:30.953 -> Current status: Not connected
12:46:30.987 -> Establishing connection with: svr21.supla.org (port: 2015)
12:46:31.055 -> Connection fail. Server: svr21.supla.org
12:46:33.094 -> Current status: Not connected
12:46:33.129 -> Establishing connection with: svr21.supla.org (port: 2015)
12:46:33.231 -> Connected
12:46:33.267 -> Current status: Register in progress
Włączałem jeszcze debugowanie ale na etapie łączenia to chyba nic dodatkowo nie wyrzuca na serial.
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

andrew01 wrote: Sun Dec 15, 2019 11:50 am Włączałem jeszcze debugowanie ale na etapie łączenia to chyba nic dodatkowo nie wyrzuca na serial.
Trochę w ciemno, ale obstawiałbym, że pamięci zaczyna brakować. Podczas ostatnich prac nie pilnowałem tego, ile pamięci jest używane i widzę, że trochę zużycie wzrosło. Przy Arduino Mega jesteśmy mocno ograniczeni przez 8 kB ;). Podczas rejestracji potrzeba tej pamięci najwięcej.
Spróbuj dorzucić sobie do programu printowanie ilości wolnej pamięci. Wstaw też w "SuplaDevice.iterate()" - np przed wejściem w rejestrację . tam gdzie jest:

Code: Select all

status(STATUS_REGISTER_IN_PROGRESS, "Register in progress");
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

klew wrote: Mon Dec 16, 2019 12:22 pm
andrew01 wrote: Sun Dec 15, 2019 11:50 am Włączałem jeszcze debugowanie ale na etapie łączenia to chyba nic dodatkowo nie wyrzuca na serial.
Trochę w ciemno, ale obstawiałbym, że pamięci zaczyna brakować. Podczas ostatnich prac nie pilnowałem tego, ile pamięci jest używane i widzę, że trochę zużycie wzrosło. Przy Arduino Mega jesteśmy mocno ograniczeni przez 8 kB ;). Podczas rejestracji potrzeba tej pamięci najwięcej.
Spróbuj dorzucić sobie do programu printowanie ilości wolnej pamięci. Wstaw też w "SuplaDevice.iterate()" - np przed wejściem w rejestrację . tam gdzie jest:

Code: Select all

status(STATUS_REGISTER_IN_PROGRESS, "Register in progress");
Jak najszybciej dorzucić wyświetlanie wolnej pamięci?
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

lukfud wrote: Mon Dec 16, 2019 12:59 pm Jak najszybciej dorzucić wyświetlanie wolnej pamięci?
Ja używam tej biblioteczki:
https://github.com/maniacbug/MemoryFree

W kodzie dajesz: Serial.println(freeMemory());
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

Ok, dzięki.
Właśnie patrzyłem na nią na jakiejś stronie ;)
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl

Return to “Arduino IDE”