ESP8266 Primary GUI v2
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.
No ok, ale przez to tracisz uniwersalność softu. Zawsze przy kompilacji musisz pamiętać o zmianie a w Cloudzie ustawiasz raz i zapominasz
https://gui-generic-builder.supla.io/
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.
Dzisiaj na spokojnie na to spojrzałem i wcale nie musisz modyfikować SuplaDevice wystarczy, że poprawisz sobie np. metodę add_Relay_ButtonRafaello pisze: ↑pt sie 30, 2019 8:58 pm Ustawiam w Primary_GUI_V2 SuplaDevice.addRelay zamiast SuplaDevice.addRelayButtonNatomiast w SuplaDevice.cpp zmodyfikowałem delikatnie twój ostatniKod: Zaznacz cały
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)); }
dla przekaźnika GATE ustawionego na addRelayButton mamzaś dla SOCKET ustawiony na addRelayKod: Zaznacz cały
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;
i wtedy na jednym mam do wyboru tylko bramy i drzwi a na drugim mam włącznik światłu lub zasilania.Kod: Zaznacz cały
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; }
Tak to sobie wykombinowałem, nie wiem czy dobrze, najważniejsze że uzyskałem to na czym mi zależy.
Kod: Zaznacz cały
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);
}
https://gui-generic-builder.supla.io/
A jakby tak dało się zadeklarować przy
Dzisiaj na spokojnie na to spojrzałem i wcale nie musisz modyfikować SuplaDevice wystarczy, że poprawisz sobie np. metodę add_Relay_ButtonWtedy 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.Kod: Zaznacz cały
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); }
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:Rafaello pisze: ↑sob sie 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)
Kod: Zaznacz cały
SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay), false, SUPLA_BIT_RELAYFUNC_POWERSWITCH | SUPLA_BIT_RELAYFUNC_LIGHTSWITCH)
https://gui-generic-builder.supla.io/
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ć.to wtedy robisz:myślę, że nic z tym nie będę robić, bo wydaje się proste do ogarnięciaKod: Zaznacz cały
SuplaDevice.addRelayButton(relay, button, type, read_supla_relay_flag(nr_relay), false, SUPLA_BIT_RELAYFUNC_POWERSWITCH | SUPLA_BIT_RELAYFUNC_LIGHTSWITCH)
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.
Jeszcze jedna rzecz jak w supla_boar_setting mamy skonfigurowany przekaźnik add_Relay; a nie add_Relay_Button nie działa DS.
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.
https://gui-generic-builder.supla.io/