ESP8266 Primary GUI v2

Rafaello
Posts: 67
Joined: Sun May 29, 2016 1:34 pm

Fri Aug 30, 2019 9:16 pm

Generalnie dla kogoś kto ma tylko sobie ustawić swojego cloud.supla nie wie który kanał jest do bramy a który do światła, a tak to na jednym ma do wyboru tylko typy GATE a na drugim SOCKET, tak były przygotowane pierwsze moduły. Firmware SUPLA-SOCKET miał tylko dwa typy światło i zasilanie, zaś SUPLA-GATE-MODULE tylko GATE czyli bramowe i to z punktu widzenia użytkownika jest wygodne.
krycha88
Posts: 532
Joined: Fri Nov 16, 2018 7:25 am

Fri Aug 30, 2019 9:20 pm

No ok, ale przez to tracisz uniwersalność softu. Zawsze przy kompilacji musisz pamiętać o zmianie a w Cloudzie ustawiasz raz i zapominasz ;-)
Rafaello
Posts: 67
Joined: Sun May 29, 2016 1:34 pm

Fri Aug 30, 2019 9:28 pm

krycha88 wrote:
Fri Aug 30, 2019 9:20 pm
No ok, ale przez to tracisz uniwersalność softu. Zawsze przy kompilacji musisz pamiętać o zmianie a w Cloudzie ustawiasz raz i zapominasz ;-)
Patrząc pod kątem uniwersalności masz zupełną rację. Jednakże dzięki twojej ogromnej robocie jaką włożyłeś w skrypt no i warto tu wspomnieć o Espablo, QLQ i innych co tworzyli źródło, kolejni mogą go dostosowywać do swoich potrzeb. Myślę że przez weekend coś ciekawego na tej bazie wymodzę, jakby co nie omieszkam poprosić o pomoc.
Jeszcze raz dzięki.
krycha88
Posts: 532
Joined: Fri Nov 16, 2018 7:25 am

Sat Aug 31, 2019 5:14 am

Rafaello wrote:
Fri Aug 30, 2019 8:58 pm
Ustawiam w Primary_GUI_V2 SuplaDevice.addRelay zamiast SuplaDevice.addRelayButton

Code: Select all

void add_Relay(int relay) {
  relay_button_channel[nr_relay] = relay;
  nr_relay++;
   SuplaDevice.addRelay(relay);
  // SuplaDevice.addRelayButton(relay, -1, 0, read_supla_relay_flag(nr_relay));
}
Natomiast w SuplaDevice.cpp zmodyfikowałem delikatnie twój ostatni
dla przekaźnika GATE ustawionego na addRelayButton mam

Code: Select all

bool SuplaDeviceClass::addRelayButton(int relayPin, int buttonPin, int type_button, int flag, bool hiIsLo) {
	return addRelayButton(relayPin, buttonPin, type_button, flag, hiIsLo, SUPLA_BIT_RELAYFUNC_CONTROLLINGTHEGATEWAYLOCK
																			| SUPLA_BIT_RELAYFUNC_CONTROLLINGTHEGATE
																			| SUPLA_BIT_RELAYFUNC_CONTROLLINGTHEGARAGEDOOR) > -1;
}

bool SuplaDeviceClass::addRelayButton(int relayPin, int buttonPin, int type_button, int flag) {
	return addRelayButton(relayPin, buttonPin, type_button, flag, false, SUPLA_BIT_RELAYFUNC_CONTROLLINGTHEGATEWAYLOCK
																			| SUPLA_BIT_RELAYFUNC_CONTROLLINGTHEGATE
																			| SUPLA_BIT_RELAYFUNC_CONTROLLINGTHEGARAGEDOOR) > -1;
zaś dla SOCKET ustawiony na addRelay

Code: Select all

bool SuplaDeviceClass::addRelay(int relayPin, bool hiIsLo) {
	return addRelay(relayPin, 0, hiIsLo, false, SUPLA_BIT_RELAYFUNC_POWERSWITCH
                              | SUPLA_BIT_RELAYFUNC_LIGHTSWITCH) > -1;
}

bool SuplaDeviceClass::addRelay(int relayPin1) {
	return addRelay(relayPin1, false) > -1;
}
i wtedy na jednym mam do wyboru tylko bramy i drzwi a na drugim mam włącznik światłu lub zasilania.
Tak to sobie wykombinowałem, nie wiem czy dobrze, najważniejsze że uzyskałem to na czym mi zależy.
Dzisiaj na spokojnie na to spojrzałem i wcale nie musisz modyfikować SuplaDevice wystarczy, że poprawisz sobie np. metodę add_Relay_Button

Code: Select all

void add_Relay_Button(int relay, int button, int type) {
  relay_button_channel[nr_relay] = relay;
  nr_button++;
  nr_relay++;
  if (type == CHOICE_TYPE) {
    int select_button = read_supla_button_type(nr_button);
    type = select_button;
  }

  SuplaDevice.addRelayButton(relay, -1, 0, read_supla_relay_flag(nr_relay), false, SUPLA_BIT_RELAYFUNC_POWERSWITCH);
}
Wtedy w cloudzie będziesz miał tylko wyłącznik światła, można by się pokusić i przerobić to tak żeby rodzaj ustawiało się supla_board_settings.cpp ale myślę, że tak jak teraz jest dobrze.
Rafaello
Posts: 67
Joined: Sun May 29, 2016 1:34 pm

Sat Aug 31, 2019 6:41 am


Dzisiaj na spokojnie na to spojrzałem i wcale nie musisz modyfikować SuplaDevice wystarczy, że poprawisz sobie np. metodę add_Relay_Button

Code: Select all

void add_Relay_Button(int relay, int button, int type) {
  relay_button_channel[nr_relay] = relay;
  nr_button++;
  nr_relay++;
  if (type == CHOICE_TYPE) {
    int select_button = read_supla_button_type(nr_button);
    type = select_button;
  }

  SuplaDevice.addRelayButton(relay, -1, 0, read_supla_relay_flag(nr_relay), false, SUPLA_BIT_RELAYFUNC_POWERSWITCH);
}
Wtedy w cloudzie będziesz miał tylko wyłącznik światła, można by się pokusić i przerobić to tak żeby rodzaj ustawiało się supla_board_settings.cpp ale myślę, że tak jak teraz jest dobrze.
A jakby tak dało się zadeklarować przy
add_Relay_Button aby w Cloud mieć wybór między światłem a zasilaniem byłoby super, wtedy można by na tej bazie stworzyć powiedzmy add_Relay_Button_Gate i ustawić przekaźniki typu bramowego, choć nie wiem czy dobra droga. Gdyby w board_setting był wybór typu przekaźnika Gate lub Socket byłaby bajka. Np add_relay(4, GATE) 😀
krycha88
Posts: 532
Joined: Fri Nov 16, 2018 7:25 am

Sat Aug 31, 2019 6:55 am

Rafaello wrote:
Sat Aug 31, 2019 6:41 am
A jakby tak dało się zadeklarować przy
add_Relay_Button aby w Cloud mieć wybór między światłem a zasilaniem byłoby super, wtedy można by na tej bazie stworzyć powiedzmy add_Relay_Button_Gate i ustawić przekaźniki typu bramowego, choć nie wiem czy dobra droga. Gdyby w board_setting był wybór typu przekaźnika Gate lub Socket byłaby bajka. Np add_relay(4, GATE) 😀
to wtedy robisz:

Code: Select all

SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay), false, SUPLA_BIT_RELAYFUNC_POWERSWITCH | SUPLA_BIT_RELAYFUNC_LIGHTSWITCH)
myślę, że nic z tym nie będę robić, bo wydaje się proste do ogarnięcia :)
cino111
Posts: 707
Joined: Mon May 07, 2018 8:00 pm

Sat Aug 31, 2019 6:57 am

Moim zdaniem nie ma to sensu. Zostawmy tak jak jest, a jest super.
Rafaello
Posts: 67
Joined: Sun May 29, 2016 1:34 pm

Sat Aug 31, 2019 7:11 am

to wtedy robisz:

Code: Select all

SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay), false, SUPLA_BIT_RELAYFUNC_POWERSWITCH | SUPLA_BIT_RELAYFUNC_LIGHTSWITCH)
myślę, że nic z tym nie będę robić, bo wydaje się proste do ogarnięcia :)
Dzięki sprawdzę, macie racje w samym GUI źródłowym nie ma sensu ruszać, natomiast jakby ktoś chciał to ustawić i na własną rękę modyfikować wie ewentualnie gdzie i co zmieniać.
Rafaello
Posts: 67
Joined: Sun May 29, 2016 1:34 pm

Sat Aug 31, 2019 7:55 am

Zmodyfikowałem GUI według wskazówek, add_Relay_Button_Invert ustawiłem dla Socket, natomiast add_Relay_Button dla Gate, i tu w cloudzie pokazuje OK, SuplaDevice nie modyfikowałem. Natomiast nadal mam problem z pamięcią stanu po restarcie załącza przekaźnik ale na kilka sekund po czym go rozłącza, cloud podąża za zmianami. Jak mam ustawiony w konfiguratorze Reset wtedy jest OK i po restarcie nie odpala przekaźników.
Jeszcze jedna rzecz jak w supla_boar_setting mamy skonfigurowany przekaźnik add_Relay; a nie add_Relay_Button nie działa DS.
krycha88
Posts: 532
Joined: Fri Nov 16, 2018 7:25 am

Sat Aug 31, 2019 8:03 am

Rafaello wrote:
Sat Aug 31, 2019 7:55 am
Natomiast nadal mam problem z pamięcią stanu po restarcie załącza przekaźnik ale na kilka sekund po czym go rozłącza, cloud podąża za zmianami.
Ale docelowo ustawia Ci się stan zapamiętany przed restartem? Jeżeli tak jest to chyba będzie ciężko coś z tym zrobić bo jest to czas który jest potrzebny do uruchomienia urządzenia (spojrzę później może da się szybciej ustawić prawidłowy stan).

Rozwiązaniem wydaj się ustawienie za pomocą add_Relay_Button lub add_Relay_Button_Invert stanu który domyślnie jest częściej używany.
Post Reply