W bibliotece SuplaDevice na Arduino IDE pojawiła się pierwsza wersja wsparacia dla CHANNELSTATE (więcej info tutaj: viewtopic.php?f=18&t=6878 )
Na chwilę obecną jeśli ktoś chce potestować, to kod jest wrzucony do mojego githuba https://github.com/klew/arduino
Aktualna implementacja jest dla ESP8266. Dla pozostałych płytek (Arduino Mega, ESP32) będzie się pokazywał jedynie uptime. Pełne wsparcie pojawi się wkrótce.
EDIT: Arduino Mega z Ethernet Shiled już też jest zaimplementowane
Biblioteka włącza CHANNELSTATE na wszystkich kanałach na urządzeniu. Zastanawiam się czy nie warto tego jakoś ograniczyć, albo dać opcję wyboru, żeby to było tylko na niektórych. Dajcie znać, czy ikonka "i" przy każdym kanale Wam przeszkadza, czy nie
Jeśli już używasz nowej wersji SuplaDevice, to wystarczy zaktualizować bibliotekę, wgrać nową binarkę na urządzenie, usunąć urządzenie z chmury i zarejestrować je na nowo (na chwilę obecną serwer czyta tą flagę tylko przy rejestracji urządzenia w chmurze, więc usuwanie jest konieczne). Jeśli nie chcesz usuwać urządzenia z chmury - daj znać @pzygmunt - on chętnie pomoże
Wszelkie sugestie są mile widziane.
CHANNELSTATE w bibliotece Arduino
Ekstra! kolejna dobra robota
Ja jestem za tym aby samemu zadecydować czy włączyć/wyłączyć ten kanał komunikacji.
Ja jestem za tym aby samemu zadecydować czy włączyć/wyłączyć ten kanał komunikacji.
https://gui-generic-builder.supla.io/
Masz na myśli wybór:
1. Wszystkie kanały albo żaden, czy
2. Domyślnie wszędzie włączone, z możliwością wyłączenia na poszczególnych kanałach, czy
3. Domyślnie wyłączone, z możliowścią włączenia na poszczególnych kanałach
?
Widzimy się na Supla Offline Party vol. 2
Nie wiem na ile to jest wykolanelne ale bym to podzielił na grupy:
[podstawowe]
Adres IP
MAC
Wifi RSSI
Siła sygnału WiFi
Uptime
Czas od nawiązania połączenia z serwerem
Ostatnia przyczyna zresetowania połączenia z serwerem
[zasilanie bateryjne]
Poziom baterii
Zasilanie bateryjne tak/nie
Żywotność baterii
[oświetlenie]
Żywotność źródła światła
Żywotność źródła światła - ile pozostało
[inne]
Węzeł mostu online/offline (póki co nieużywane z uwagi na to, że wprowadzono możliwość określania statusu online/offline dla poszczególnych kanałów, a nie koniecznie dla całego urządzenia)
Siła sygnału radia mostu
Jeżeli wybiorę grupe [podstawowe] to fajnie byłoby przypiąć ją do kanału 0 aby nie wyświetlać tej samej informacji dla pozostałych kanałów. Można to również rozwiązać po stronie samej aplikacji przypinając taką grupę w miejsce np. lokalizacji?
dla mnie minimum to:
1. Wszystkie kanały albo żaden
https://gui-generic-builder.supla.io/
Ogólnie zrobiłem to tak, że po otrzymaniu zapytania o "channel state", aplikacja wypełnia dane o sieci, potem dane związane z uptime.
Następnie przekazuje taką wstępnie wypełnioną strukturę do "elementu" z SuplaDevice, odpowiedzialnego za kanał, którego dotyczy pytanie:
Konkretny "element" może z otrzymanym channelState zrobić co mu się podoba. Może skasować uzupełnione informacje, może je nadpisać, może dodać swoje. Obuduję jeszcze tą strukturę TDSC_ChannelState w jakąś klasę, aby nie trzeba było się bawić operacjami OR na bitach. Aktualnie metoda handleGetChannelState nie robi nic z tymi danymi. Planuję dodać tam obsługę żywotności światła dla przekaźników (bo w ogólności funkcja "światło" jest konfigurowana w cloud i urządzenie może nie wiedzieć do czego służy przekaźnik).
Można by też to pole użyć do liczenia jak długo urządzenie było włączone.
Co do wyboru kanału "0", to ja osobiście mam wątpliwości. Wszystko jest fajnie, jeśli Twoje urządzenie obsługuje jedną funkcję (albo kilka mocno powiązanych ze sobą kanałów - np. stacja pogodowa). Ale jeśli stacja pogodowa jest postawiona przy bramie przesuwnej i przy okazji ten sam układ obsługuje przekaźnik od bramy, to chyba chciałbym mieć przynajmniej dwa przyciski "i" - jeden w lokalizacji stacji pogodowej, a drugi w lokalizacji bramy - tak abym nie musiał pamiętać, że przekaźnik od bramy jest na tym samym urządzeniu, co stacja pogodowa i tam gdzieś szukać "i".
Myślę, że prawdopodobnie zrobię to domyślnie włączone, z opcją wyłączenia per kanał. Czyli coś w stylu:
Zasilanie bateryjne - chętnie to dopiszę dla urządzenia wykonawczego - tylko potrzebowałbym kogoś, kto z tego korzysta. Trzeba by ustalić skąd brać informację o stanie naładowania i o żywotności baterii.
Zasilanie bateryjne może też dotyczyć samego kanału (np. termometr na oddalonym urządzeniu z RF) - wtedy taką implementację trzeba zrobić dla tego konkretnego kanału. Tylko to już bardziej dotyczy urządzeń typu "bramka" - w tym przypadku np. bramka RF.
Także wydaje mi się, że sytuacji jest sporo. Kokretne rozwiązania będzie łatwiej opracować na konkretnych przykładach.
Następnie przekazuje taką wstępnie wypełnioną strukturę do "elementu" z SuplaDevice, odpowiedzialnego za kanał, którego dotyczy pytanie:
Kod: Zaznacz cały
virtual void handleGetChannelState(TDSC_ChannelState &channelState);
Można by też to pole użyć do liczenia jak długo urządzenie było włączone.
Co do wyboru kanału "0", to ja osobiście mam wątpliwości. Wszystko jest fajnie, jeśli Twoje urządzenie obsługuje jedną funkcję (albo kilka mocno powiązanych ze sobą kanałów - np. stacja pogodowa). Ale jeśli stacja pogodowa jest postawiona przy bramie przesuwnej i przy okazji ten sam układ obsługuje przekaźnik od bramy, to chyba chciałbym mieć przynajmniej dwa przyciski "i" - jeden w lokalizacji stacji pogodowej, a drugi w lokalizacji bramy - tak abym nie musiał pamiętać, że przekaźnik od bramy jest na tym samym urządzeniu, co stacja pogodowa i tam gdzieś szukać "i".
Myślę, że prawdopodobnie zrobię to domyślnie włączone, z opcją wyłączenia per kanał. Czyli coś w stylu:
Kod: Zaznacz cały
auto relay = new Supla::Control::Relay(14, true, true);
relay->disableChannelState(); // to tylko przykład. Takiej metody jeszcze nie ma w biblitece
Zasilanie bateryjne - chętnie to dopiszę dla urządzenia wykonawczego - tylko potrzebowałbym kogoś, kto z tego korzysta. Trzeba by ustalić skąd brać informację o stanie naładowania i o żywotności baterii.
Zasilanie bateryjne może też dotyczyć samego kanału (np. termometr na oddalonym urządzeniu z RF) - wtedy taką implementację trzeba zrobić dla tego konkretnego kanału. Tylko to już bardziej dotyczy urządzeń typu "bramka" - w tym przypadku np. bramka RF.
Także wydaje mi się, że sytuacji jest sporo. Kokretne rozwiązania będzie łatwiej opracować na konkretnych przykładach.
Widzimy się na Supla Offline Party vol. 2
O tym przypadku nie pomyślałem, który to zburzył moją koncepcjęklew pisze: ↑pt lip 17, 2020 11:13 am Co do wyboru kanału "0", to ja osobiście mam wątpliwości. Wszystko jest fajnie, jeśli Twoje urządzenie obsługuje jedną funkcję (albo kilka mocno powiązanych ze sobą kanałów - np. stacja pogodowa). Ale jeśli stacja pogodowa jest postawiona przy bramie przesuwnej i przy okazji ten sam układ obsługuje przekaźnik od bramy, to chyba chciałbym mieć przynajmniej dwa przyciski "i" - jeden w lokalizacji stacji pogodowej, a drugi w lokalizacji bramy - tak abym nie musiał pamiętać, że przekaźnik od bramy jest na tym samym urządzeniu, co stacja pogodowa i tam gdzieś szukać "i".
https://gui-generic-builder.supla.io/
Zaktualizowałem bibliotekę, wrzuciłem kompilację na wemosa, widzę dodatkową ikonę "i" ale przy tapnięciu w nią nic się nie dzieje. Nie pokazuje się dodatkowe okno.
Wersja app 2.3.44 (mate 20 lite) na svr30.
Wersja app 2.3.44 (mate 20 lite) na svr30.
https://www.facebook.com/groups/supladiy/
To oznacza, że Twoje urządzenie nie odpowiada poprawnie na żądanie aplikacji klienckiej.