GUI Generic

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

dobo wrote: Wed Feb 24, 2021 7:55 am ZMIANA STANU - działa prawidłowo (jedynie przy zaniku zasilania i przy ustawieniu przekaźnika na PAMIĘTAJ STAN możne dojść do zmiany jego działania na odwrotne. Sytuacja taka nastąpi gdy nie ma zasilania, a na włączniku bistabilnym zrobimy zmianę położenia klawisza. Uważam, że nie da się z tym nic zrobić bo gdy ESP nie ma zasilania to nie wie, że nastąpiła zmiana na włączniku bistabilnym i wtedy inne położenie włącznika zapali światło, a inne je zgasi).
To tak musi działać. Wystarczy, że przełączysz przekaźnik z poziomu aplikacji, a wtedy przycisk bistabilny też odwróci swoje działanie.
To ma działać tak jak przyciski schodowe - każde przełączenie zmienia stan, więc nie ma ustalonej pozycji włącznika oznaczającej "włączone"
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Wed Feb 24, 2021 9:08 am Domyślna "logika" przycisku jest taka, że w stanie "normalnym"/"rozwartym"/"nie wciśniętym" ma być na GPIO stan LOW. Wciśnięcie przycisku ma generować pojawienie się stanu "HIGH".
Teraz, zależnie od pullupa (albo wewnętrznego, albo zrobionego samemu) lub pulldowna, oraz od typu przycisku (może być zwierny lub rozwierny), to w stanie "normalnym"/"nie wciśniętym", może być na GPIO odczyt LOW lub HIGH. Tego się nie da automatycznie odgadnąć. Mając konkretny sprzęt, przycisk i ich konfigurację sprzętową, urzytkownik musi wiedzieć jaki ma stan "normalny". Wtedy trzeba skonfigurować odpowiednio logikę.

Najprostszy przykład to zwykły przycisk zwierny (czyli typu NO - normalnie otwarty) oraz ustawiony wewnętrzny INPUT_PULLUP. INPUT_PULLUP powoduje, że poziom logiczny na GPIO jest podciągnięty przy pomocy rezystora do HIGH, więc odczyt w stanie normalnym na GPIO to HIGH. W takim ustawieniu, przycisk powinien być podłączony do GPIO oraz GND i jego wciśnięcie powoduje zwarcie GPIO do GND, a więc przejście do stanu LOW. W tym przypadku trzeba ustawić odwróconą logikę - tak jak podałeś w przykładzie.

Użycie Button(pin, true) - z domyślnym trzecim parametrem "false" - mogłoby być poprawne w przypadku gdy mamy podłączony przycisk rozwierny (czyli NC - normlanie zamknięty), wtedy przycisk domyślnie zwiera doi GND, a jego wciśnięcie rozwiera i pojawia się stan HIGH.
czyli najrozsądniej byłoby pokazać opcję invertLogic w GUI.
https://gui-generic-builder.supla.io/
dobo
Posts: 1051
Joined: Sun Apr 07, 2019 8:14 pm
Location: Nadarzyn

Post

@klew całkowicie się z Tobą zgadzam, dlatego napisałem, że ZMIANA STANU działa prawidłowo nie przyszło mi jedynie do głowy aby to też powiązać ze zmianą z poziomu aplikacji.
W tym poście viewtopic.php?p=89894#p89894 napisałem właśnie o sposobie działania jak włącznika schodowego dobrym też przykładem jest to co napisałeś o zmianach z poziomu aplikacji.
Last edited by dobo on Wed Feb 24, 2021 1:48 pm, edited 1 time in total.
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

krycha88 wrote: Wed Feb 24, 2021 11:07 am czyli najrozsądniej byłoby pokazać opcję invertLogic w GUI.
Myślałem, że do tego służy "Załączany stanem: LOW" ;)
Rozumiem, że za tą opcją nie kryje się konfiguracja samego przycisku, tylko akcja z "addAction"?

invertLogic jest w zasadzie potrzebne tylko do przycisków monostabilnych. Przy bistabilnych jest to bez znaczenia, bo tam reakcja jest na zmianę stanu, niezależnie od tego czy to jest "wciśnięcie", czy "puszczenie".
Przy przyciskach monostabilnych musimy wiedzieć, który stan odpowiada za "wciśnięcie". Inaczej nie będą działały ON_PRESS, ON_RELEASE, ON_HOLD, ON_CLICK_xx.

BTW. dla bistabilnych jest też opcja zliczania "clicków" - tylko wtedy on liczy ilość szybkich przełączeń.
Najlepsze suple dla Twojego domu :mrgreen:
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

klew wrote: Wed Feb 24, 2021 11:19 am Myślałem, że do tego służy "Załączany stanem: LOW" ;)
Rozumiem, że za tą opcją nie kryje się konfiguracja samego przycisku, tylko akcja z "addAction"?

invertLogic jest w zasadzie potrzebne tylko do przycisków monostabilnych. Przy bistabilnych jest to bez znaczenia, bo tam reakcja jest na zmianę stanu, niezależnie od tego czy to jest "wciśnięcie", czy "puszczenie".
Przy przyciskach monostabilnych musimy wiedzieć, który stan odpowiada za "wciśnięcie". Inaczej nie będą działały ON_PRESS, ON_RELEASE, ON_HOLD, ON_CLICK_xx.

BTW. dla bistabilnych jest też opcja zliczania "clicków" - tylko wtedy on liczy ilość szybkich przełączeń.
ta nazwa wprowadzała w błąd bo to tak naprawdę było to określenie pullup dla przycisku :D. invertLogic nigdy nie było dostępne w GUI było ustawione w kodzie na sztywno na false.

parametry dla "addAction" to dwie pozostałe opcje czyli "Reakcja na" oraz "Akcja"
https://gui-generic-builder.supla.io/
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

inversed.PNG
W wersji 1.3.5:
-Dodałem możliwość zamiany logiki dla przycisku "invertLogic". Teraz sobie ustawicie przyciski jak chcecie.
-poprawiłem dość nie trafioną nazwę dla pull-up ;)
You do not have the required permissions to view the files attached to this post.
https://gui-generic-builder.supla.io/
dobo
Posts: 1051
Joined: Sun Apr 07, 2019 8:14 pm
Location: Nadarzyn

Post

Przetestowane ale nastawa Odwrócony jest dla mnie nadal nie logiczna.

Wydaje mi się, że po zaznaczeniu tylko Pull-up ESP powinien wiedzieć, że reakcja ma nastąpić po podaniu GND na wskazane GPIO i załączyć dany przekaźnik gdy tylko wciśniemy przycisk, a tak nie jest bo reaguje na zwolnienie (tak jak w wersji 1.3.4). Dopiero zaznaczenie Odwrócony jak wyżej na obrazku powoduje prawidłową reakcję i to nadal wydaje mi się nie logiczne.





PS
W wersji 1.3.4 opcja Załączany stanem kompletnie nie ma znaczenia bo czy ustawię HIGH czy LOW działanie zawsze jest takie same przed chwilą wgrałem ponownie tą wersję by jeszcze to sprawdzić.
Jedynie co to zamienienie nazw z WCISNIĘCIE na ZWOLNIENIE i ZWOLNIENIE na WCISNIĘCIE sprawiło by, że była by w tym zachowana prawidłowa reakcja i logika.
Last edited by dobo on Wed Feb 24, 2021 5:15 pm, edited 5 times in total.
milczas
Posts: 9
Joined: Fri Jan 12, 2018 6:56 pm

Post

Brawo może teraz wszyscy będą zadowoleni :D

A ja mam nadzieję że - GUI_Generic_ver1.3.5.zip bedzie już z obsługą BMP280 i BME280
krycha88
Posts: 5575
Joined: Fri Nov 16, 2018 7:25 am
Been thanked: 5 times

Post

dobo wrote: Wed Feb 24, 2021 4:44 pm Przetestowane ale nastawa Odwrócony jest dla mnie nadal nie logiczna.

Wydaje mi się, że po zaznaczeniu tylko Pull-up ESP powinien wiedzieć, że reakcja ma nastąpić po podaniu GND na wskazane GPIO i załączyć dany przekaźnik gdy tylko wciśniemy przycisk, a tak nie jest bo reaguje na zwolnienie (tak jak w wersji 1.3.4). Dopiero zaznaczenie Odwrócony jak wyżej na obrazku powoduje prawidłową reakcję i to nadal wydaje mi się nie logiczne.
A sprawdzałeś może dla MPC23017? Tam też dodałem.
https://gui-generic-builder.supla.io/
dobo
Posts: 1051
Joined: Sun Apr 07, 2019 8:14 pm
Location: Nadarzyn

Post

Nie testowałem bo wgrałem ponownie 1.3.4 by coś sprawdzić - dopisałem to w moim wcześniejszym poście.
Wgram ponownie 1.3.5 to sprawdzę.


PS
Zapomniałem, że nie zmontowałem jeszcze płytki dla 16 przycisków więc potrwa to chwilkę :D

Return to “GUI Generic”