Aktualizacja SuplaDevice

andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

klew wrote: Mon Dec 16, 2019 12:22 pm 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");
Wstawiłem wyrzucanie wolnej pamięci przy każdej zmianie statusu w funkcji status_func:

Code: Select all

19:31:20.118 -> localIP: 192.168.2.175
19:31:20.118 -> subnetMask: 255.255.255.0
19:31:20.165 -> gatewayIP: 192.168.2.1
19:31:20.212 -> dnsServerIP: 192.168.2.1
19:31:20.212 -> Using protocol version 8
19:31:20.259 -> freeMemory: 3395
19:31:20.259 -> SuplaDevice initialized
19:31:20.306 -> freeMemory: 3395
19:31:20.306 -> Not connected
19:31:20.306 -> Establishing connection with: svr21.supla.org (port: 2015)
19:31:52.509 -> Connection fail. Server: svr21.supla.org
19:31:54.525 -> freeMemory: 3395
19:31:54.525 -> Not connected
19:31:54.571 -> Establishing connection with: svr21.supla.org (port: 2015)
19:31:54.665 -> Connected
19:31:54.665 -> freeMemory: 3395
19:31:54.712 -> Register in progress
19:33:54.794 -> freeMemory: 3395
19:33:54.828 -> Not connected
19:33:54.828 -> Establishing connection with: svr21.supla.org (port: 2015)
19:33:54.898 -> Connection fail. Server: svr21.supla.org
19:33:56.979 -> freeMemory: 3395
19:33:56.979 -> Not connected
19:33:57.014 -> Establishing connection with: svr21.supla.org (port: 2015)
19:33:57.083 -> Connected
19:33:57.118 -> freeMemory: 3395
19:33:57.118 -> Register in progress
Przy dłuższym działaniu programu ilość wolnej pamięci nie zmienia się i pozostaje na poziomie 3395.
Czy jest szansa na jakieś log'i od strony serwera? Może tam byłoby jakieś nakierowanie na problem.
andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

Zmieniłem w proto.h
#define SUPLA_MAX_DATA_SIZE 1024
na
#define SUPLA_MAX_DATA_SIZE 1152
i ruszyło :)

Zmieniłem tak trochę na czuja, nie mam pojęcia co tam wewnątrz się dzieje :)
andrew01
Posts: 163
Joined: Fri May 24, 2019 6:49 am

Post

Może warto byłoby w proto.c dodać wrzucanie do loga powodu przy odmowie rejestracji?
if (data_size > SUPLA_MAX_DATA_SIZE) return SUPLA_RESULT_FALSE;
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

andrew01 wrote: Tue Dec 17, 2019 8:51 pm Może warto byłoby w proto.c dodać wrzucanie do loga powodu przy odmowie rejestracji?
if (data_size > SUPLA_MAX_DATA_SIZE) return SUPLA_RESULT_FALSE;
Dzięki za rozwikłanie problemu. W bibliotece źle są ustawione parametry "max data size" oraz "max channel count". Przez to się rozjeżdża. Zrobiłem już poprawki wraz z komunikatem błędu przy rejestracji, aby nie było tak milcząco jak jest teraz.
Wrzuciłem też do siebie na gita, ale potem się skapnąłem że kompilator na Arduino mega się wyłożył na innych zmianach które robiłem. C++ na Arduino nie wspiera std::list... Jutro to poprawię i wtedy zrobię pull request.
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: Wed Dec 18, 2019 12:18 am
andrew01 wrote: Tue Dec 17, 2019 8:51 pm Może warto byłoby w proto.c dodać wrzucanie do loga powodu przy odmowie rejestracji?
if (data_size > SUPLA_MAX_DATA_SIZE) return SUPLA_RESULT_FALSE;
Dzięki za rozwikłanie problemu. W bibliotece źle są ustawione parametry "max data size" oraz "max channel count". Przez to się rozjeżdża. Zrobiłem już poprawki wraz z komunikatem błędu przy rejestracji, aby nie było tak milcząco jak jest teraz.
Wrzuciłem też do siebie na gita, ale potem się skapnąłem że kompilator na Arduino mega się wyłożył na innych zmianach które robiłem. C++ na Arduino nie wspiera std::list... Jutro to poprawię i wtedy zrobię pull request.
Czy to mogła być przyczyna, też moich dolegliwoś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: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

lukfud wrote: Mon Dec 23, 2019 11:25 am Czy to mogła być przyczyna, też moich dolegliwości?
To się wysypywało po przekroczeniu dwudziestu kilku kanałów na jednym urządzeniu.
Także raczej to nie jest przyczyną Twoich problemów.
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 za info :)
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: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Dorzuciłem pierwsze sensory w nowym wydaniu.
Jak na razie dodałem obsługę termometrów DS18B20. Można dodawać dowolną ilość DSów na dowolnych pinach (ile sprzęt udźwignie ;) )

Przykładowo tak wygląda dodanie czterech termometrów na pinie 3:

Code: Select all

  DeviceAddress ds1addr = {0x28, 0xFF, 0xC8, 0xAB, 0x6E, 0x18, 0x01, 0xFC};
  DeviceAddress ds2addr = {0x28, 0xFF, 0x54, 0x73, 0x6E, 0x18, 0x01, 0x77};
  DeviceAddress ds3addr = {0x28, 0xFF, 0x55, 0xCA, 0x6B, 0x18, 0x01, 0x8D};
  DeviceAddress ds4addr = {0x28, 0xFF, 0x4F, 0xAB, 0x6E, 0x18, 0x01, 0x66};
    
  new Supla::Sensor::DS18B20(3, ds1addr);
  new Supla::Sensor::DS18B20(3, ds2addr);
  new Supla::Sensor::DS18B20(3, ds3addr);
  new Supla::Sensor::DS18B20(3, ds4addr);
Powyższy kod wstawia się do "setup". Trzeba też dodać include'a:

Code: Select all

#include <supla/sensor/DS18B20.h>
Zewnętrzna biblioteka do obsługi Dallasów jest nadal potrzebna.

Po dodaniu termometru na jakiś pin, aplikacja printuje na Serial numery seryjne znalezionych DSów przy każdym starcie.
Mając tylko jednego DSa na pin, można pominąć podawanie adresu i ograniczyć się tylko do pina.

Odczyt jest ustawiony z 12 bitową precyzją, ale jest nieblokujący.
Jeszcze paru drobiazgów brakuje, ale ogólnie już działa i można się bawić
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

Nie testowałem ale wygląda na bardzo dobrą robotę ;)
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Dodam tylko, że na chwilę obecną te nowości są na https://github.com/klew/arduino/tree/develop/
Jest też otwarty pull request, aby to trafiło do oficjalnego repo (też branch develop)
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Arduino IDE”