Tryb konfiguracyjny bez przycisku
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Cześć, mam takie pytanko. Chciałbym przeprogramować żarówkę RGBW. Oryginalnie pracuje z softem TUYA. W tryb konfiguracyjny wchodzi się włączając jej 3 razy zasilanie. Czy Supla ma coś podobnego? chodzi mi o zaprogramowanie poprzez Arduino takiego trybu. Teoretycznie nie programując przycisku konfiguracyjnego powinniśmy mieć dostęp do urządzenia przez webserwer, działa to podobno (nie sprawdzałem) w sofcie generowanym poprzez GUI Generic Builder, a jak to jest w programie Arduino? Choć wolałbym, aby żarówka nie nadawała mi cały czas sieci. Wiem, że z poziomu Clouda mogę wymusić tryb konfiguracyjny, ale jeśli przenoszę urządzenie z jednej sieci wifi na drugą, nawet nie zmieniając adresów serwerów, to nie będzie jak wprowadzić nowych konfiguracji wifi nie mając dostępu do urządzenia.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
klew
- Posts: 13911
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 135 times
- Been thanked: 137 times
Jeśli chcesz, to GG wgrasz przez Arduino IDE 
Robiąc program "od podstaw" w np. Arduino IDE, sam definiujesz kiedy ma wchodzić w tryb konfiguracji.
Nie wiem czy przełączanie zasilania 3x na żarówce to najlepszy pomysł. W końcu to jest żarówka i ją się często całkowicie odcina od zasilania, a dzieci bawiące się światłami potrafią migać dużo więcej niż 3x
Jeśli chodzi o to "jak to zrobić", to mógłbyś do flasha zapisywać taki licznik uruchomień, który jest resetowany np. po 5 s od włączenia zasilania. Przy każdym kolejnym wyłączeniu i włączeniu zasilania, licznik zwiększasz o 1 i jeśli jest >= 3, to przełączasz urządzenie w tryb konfiguracyjny.
Bazując na przykładzie "WebInterface" z biblioteki SuplaDevice można to zrobić np. tak:
Powyższego kodu nie kompilowałem, ani nie testowałem, więc coś może nie działać 
Robiąc program "od podstaw" w np. Arduino IDE, sam definiujesz kiedy ma wchodzić w tryb konfiguracji.
Nie wiem czy przełączanie zasilania 3x na żarówce to najlepszy pomysł. W końcu to jest żarówka i ją się często całkowicie odcina od zasilania, a dzieci bawiące się światłami potrafią migać dużo więcej niż 3x
Jeśli chodzi o to "jak to zrobić", to mógłbyś do flasha zapisywać taki licznik uruchomień, który jest resetowany np. po 5 s od włączenia zasilania. Przy każdym kolejnym wyłączeniu i włączeniu zasilania, licznik zwiększasz o 1 i jeśli jest >= 3, to przełączasz urządzenie w tryb konfiguracyjny.
Bazując na przykładzie "WebInterface" z biblioteki SuplaDevice można to zrobić np. tak:
Code: Select all
// w setup, pod SuplaDevice.begin()
auto cfg = Supla::Storage::ConfigInstance();
if (cfg) {
int8_t resetCounter = 0;
cfg->getInt8("resetCounter", &resetCounter));
resetCounter++;
if (resetCounter >= 3) {
SuplaDevice.requestCfgMode(Supla::Device::WithTimeout);
cfg->setInt8("resetCounter", 0);
} else {
cfg->setInt8("resetCounter", resetCounter);
}
cfg->commit();
}
// w iterate
static bool resetCountTimedOut = false;
if (!resetCountTimedOut && millis() > 5000) {
resetCountTimedOut = true;
auto cfg = Supla::Storage::ConfigInstance();
if (cfg) {
cfg->setInt8("resetCounter", 0);
cfg->commit(); // to można pominąć, bo urządzenie samo wywoła commit, ale może to być po kilku sekundach, więc realnie te 5s by się wydłużyło
}
}
Najlepsze suple dla Twojego domu 
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Z tymi dziećmi to masz racjęklew wrote: Wed Jan 04, 2023 10:26 am Jeśli chcesz, to GG wgrasz przez Arduino IDE
Robiąc program "od podstaw" w np. Arduino IDE, sam definiujesz kiedy ma wchodzić w tryb konfiguracji.
Nie wiem czy przełączanie zasilania 3x na żarówce to najlepszy pomysł. W końcu to jest żarówka i ją się często całkowicie odcina od zasilania, a dzieci bawiące się światłami potrafią migać dużo więcej niż 3x
Jeśli chodzi o to "jak to zrobić", to mógłbyś do flasha zapisywać taki licznik uruchomień, który jest resetowany np. po 5 s od włączenia zasilania. Przy każdym kolejnym wyłączeniu i włączeniu zasilania, licznik zwiększasz o 1 i jeśli jest >= 3, to przełączasz urządzenie w tryb konfiguracyjny.
Bazując na przykładzie "WebInterface" z biblioteki SuplaDevice można to zrobić np. tak:
Powyższego kodu nie kompilowałem, ani nie testowałem, więc coś może nie działaćCode: Select all
// w setup, pod SuplaDevice.begin() auto cfg = Supla::Storage::ConfigInstance(); if (cfg) { int8_t resetCounter = 0; cfg->getInt8("resetCounter", &resetCounter)); resetCounter++; if (resetCounter >= 3) { SuplaDevice.requestCfgMode(Supla::Device::WithTimeout); cfg->setInt8("resetCounter", 0); } else { cfg->setInt8("resetCounter", resetCounter); } cfg->commit(); } // w iterate static bool resetCountTimedOut = false; if (!resetCountTimedOut && millis() > 5000) { resetCountTimedOut = true; auto cfg = Supla::Storage::ConfigInstance(); if (cfg) { cfg->setInt8("resetCounter", 0); cfg->commit(); // to można pominąć, bo urządzenie samo wywoła commit, ale może to być po kilku sekundach, więc realnie te 5s by się wydłużyło } }![]()
Kod się skompilował poprawnie, znaczy się po:
Code: Select all
cfg->getInt8("resetCounter", &resetCounter));Jutro będę kod testował, bo wszystkie testy robię w pracy (poprostu więcej czasu tam mam
Dzięki wielkie, dam jutro znać jak poszły testy.
Pozdrawiam
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
-
veeroos
- Posts: 1081
- Joined: Sun Mar 20, 2022 9:30 am
- Location: Głogów
- Has thanked: 1 time
- Been thanked: 9 times
Powiem tak. Krzysztof jesteś wielki, wszystko chodzi tak jak powinno. W moim wątku, który założyłem o tej żarówce opiszę cały proces zmiany softu. Tak dla potomnych jakby ktoś chciał sobie sam coś zmienić.
Zamel Mew-01, Zamel PEW-01, Zamel SBW-01, Zamel THW-01, Zamel SRW-01, Zamel mSLW-02, Auraton BOX + Indor Sensor, Airly Gate By Veeroos, Zigbee to Supla Gateway + sensors, Zamel SGW-01 and more
https://github.com/v33r005
https://github.com/v33r005
