Otwieram ten wątek, ze względu na ważność tematu oraz brak rozwiązania problemu z poprawnym działaniem softu.
Ty i ówdzie temat był poruszany na forum, ale nie doprowadzony do końca. Pisano o tym, że tryb ten działa poprawnie jedynie na modułach SONOFF-a. Sprawdziłem, działanie softu skompilowanego ze źródeł dla płytki sonoff-a, wifisocket-a i lightswitch-a i niestety nie działa. Soft sonoff-a co prawda wgrywam nie nie do oryginalego modułu, ale nie powinno mieć to znaczenia. Przy fladze RELAY_FLAG_RESTORE jedyne, co się zmienia w działaniu modułów, to że zostaje odwrócona logika, tak jakby LO_VALUE 1.Czy ktoś ma inne doświadczenia?
Kompilacja softów z wersji 1.8 Beta, ale przed ostatnią aktualizacją wprowadzającą flagę RELAY_FLAG_HI_LEVEL_TRIGGER, po której nie działa sterowanie z przycisków.
I jeszcze jedno pytanie - jaka jest różnica pomiędzy RELAY_FLAG_RESTORE i RELAY_FLAG_RESTORE_FORCE ?
Z konsoli mam RST Reason przy starcie równe się 6.
Pamięć stanu przekaźników, czyli RELAY_FLAG_RESTORE
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
Last edited by Zybi on Sun Oct 09, 2016 5:37 pm, edited 1 time in total.
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
W takim razie prośba do posiadaczy oryginalnych modułów SONOFF o sprawdzenie, jak te moduły zachowują się przy różnych flagach.
Ja testowałem na WeMos D1 R2 oraz na "czystych" ESP-12E.
Można także przetestować ESP-07.
Ja testowałem na WeMos D1 R2 oraz na "czystych" ESP-12E.
Można także przetestować ESP-07.
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
To bardzo ważna i pocieszająca informacja - w projekcie, który w tej chwili realizuję ostatnim nierozwiązanym problemem, jest (a teraz już był) właśnie pamięć stanu przekaźników.pzygmunt wrote:RST STATE na wroomie działa poprawnie
Po raz kolejny dzięki Przemek!
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
Przemek, a może warto by ten problem poruszyć np. na forum Espressif-a, bo przecież wszystkie moduły są na tym samym chip-ie robione. Może da się to jednak rozwiązać programowo? Inaczej to mamy ograniczenia w stosowaniu modułów, szczególnie, że z np. z antenką zewnętrzną jest tylko ESP-07 (chociaż jeszcze nie wiem, czy z nim to działa, czy nie - tu prośba do Espablo o przetestowanie).
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
Czy w definicjach płytek/softów oprócz RELAY_FLAG_RESTORE lub RELAY_FLAG_RESTORE_FORCE należy coś jeszcze uwzględnić, aby to działało?
A pytam się ze względu na poniższy fragment kodu z "supla_esp_gpio.c"
A pytam się ze względu na poniższy fragment kodu z "supla_esp_gpio.c"
Code: Select all
#ifdef RELAY_BEFORE_CHANGE_STATE
RELAY_BEFORE_CHANGE_STATE;
#endif
if ( time == NULL
|| abs(t-(*time)) >= RELAY_MIN_DELAY ) {
//supla_log(LOG_DEBUG, "port = %i, hi = %i", port, hi);
supla_esp_gpio_hi(port, hi);
os_delay_us(10000);
supla_esp_gpio_hi(port, hi);
if ( time != NULL )
*time = t;
result = 1;
}
os_delay_us(10);
supla_esp_gpio_btn_irq_lock(0);
#ifdef RELAY_AFTER_CHANGE_STATE
RELAY_AFTER_CHANGE_STATE;
#endif
if ( result == 1
&& state != NULL ) {
*state = hi;
supla_esp_save_state(SAVE_STATE_DELAY);
}
return result;
}-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
Nic więcej. Przywracanie stanu jest tutaj
https://github.com/SUPLA/supla-core/blo ... pio.c#L578
https://github.com/SUPLA/supla-core/blo ... pio.c#L578
SUPLA.... Nareszcie w domu.
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
A gdzie dla funkcji
supla_esp_gpio_relay_hi(supla_relay_cfg[a].gpio_id, supla_esp_state.Relay[a]);
odczytywana jest wartość dla - supla_esp_state.Relay[a]
supla_esp_gpio_relay_hi(supla_relay_cfg[a].gpio_id, supla_esp_state.Relay[a]);
odczytywana jest wartość dla - supla_esp_state.Relay[a]
-
pzygmunt
- Posts: 20302
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
- Been thanked: 59 times
