Komenda po wybudzeniu Deep Sleep

User avatar
Lukas2022
Posts: 177
Joined: Fri Sep 02, 2022 3:09 pm

Post

Czy w ustawieniach Supli lub oprogramowaniu dla D1 Mini ESP8266 można skonfigurować tryb deep sleep w taki sposób, aby po wybudzeniu urządzenie pamiętało, że w aplikacji został aktywowany chwilowy przełącznik i włączyło przekaźnik (np. na 1 sekundę) do otwarcia furtki, gdy system był w uśpieniu?

Co należy zmienić w ustawieniach, aby serwer przechowywał informację o włączonym przełączniku w aplikacji telefonu i wykonał tę komendę po ponownym połączeniu ESP z Wi-Fi?

Przecież aplikacja działa cały czas – jedynie D1 Mini jest uśpione i wybudza się na 10 sekund. Tego czasu powinno wystarczyć, aby załączył przekaźnik na 1 sekundę. Po wybudzeniu urządzenie powinno odczytać stan aplikacji i, jeśli wcześniej włączono chwilowy przełącznik, automatycznie aktywować przekaźnik. Jak poprawnie skonfigurować to ustawienie?
User avatar
YoMan
Posts: 3164
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa

Post

Niestety nie rozumiem. Wyjaśnij co to ma być i jak działać
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
User avatar
Lukas2022
Posts: 177
Joined: Fri Sep 02, 2022 3:09 pm

Post

Deep Sleep jest ustawiony na minutę – urządzenie budzi się co 60 sekund i działa przez 10 sekund. W czasie uśpienia, jeśli w aplikacji zostanie naciśnięty przycisk otwierania furtki, po wybudzeniu system powinien wykonać tę komendę.
Mechanizm otwierania furtki działa poprzez przypisany przełącznik chwilowy, który aktywuje przekaźnik na jedną sekundę (włącz/wyłącz).
Czy istnieje możliwość skonfigurowania systemu tak, aby pamiętał, że w trakcie uśpienia została wysłana komenda otwarcia furtki i wykonał ją natychmiast po wybudzeniu?

D1 Mini jest zasilane z akumulatora, dlatego zastosowałem tryb Deep Sleep, aby maksymalnie wydłużyć czas pracy. Zależy mi jednak, aby podstawowe funkcje działały niezależnie od tego, czy D1 Mini jest w trybie uśpienia, czy aktywne.
Nie przeszkadza mi oczekiwanie 1–2 minut przy furtce, w zależności od ustawionego czasu uśpienia. Może się też zdarzyć, że naciśnięcie przycisku w aplikacji nastąpi tuż przed wybudzeniem urządzenia, co zapewni niemal natychmiastową reakcję.
User avatar
klew
Posts: 10957
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Nie ma czegoś takiego
User avatar
YoMan
Posts: 3164
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa

Post

Jeżeli w momencie wzbudzenia ten przycisk będzie dalej wcisnięty to zadziała. Inaczej nie, bo przecież jest uśpiony.
To powinno być tak skonfigurowane, że moduł śpi cały czas i wciśnięcie przycisku go budzi.
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
User avatar
Lukas2022
Posts: 177
Joined: Fri Sep 02, 2022 3:09 pm

Post

Jeśli masz na myśli, że przycisk w aplikacji ma wybudzać D1 mini, to rzeczywiście byłoby to najlepsze rozwiązanie. W momencie wzbudzenia przycisk nie będzie wciśnięty, ponieważ został zaprogramowany jako furtka – działa impulsowo przez 1 sekundę.
Z tego, co udało mi się dowiedzieć, wyłączenie Wi-Fi oznacza całkowity brak połączenia z internetem, co uniemożliwia natychmiastowe wybudzenie D1 mini lub innej płytki. Chyba że masz na myśli fizyczny przycisk, ale takiego nie ma i nie będzie (choć trochę się zagalopowałem – przypomina mi to słynną formułę naszego byłego ministra...).
Wracając do tematu – aplikacja w chmurze steruje oprogramowaniem D1 mini, więc czy naprawdę nie ma możliwości uruchomienia żadnej funkcji, która pozwoliłaby sterownikowi wykonać polecenie wykonane podczas uśpienia?
Dodałem również opcję Wake on LAN, ale w tym przypadku raczej nie zadziała. Tutaj potrzebne byłoby wykorzystanie pamięci chmury do realizacji opóźnionych zadań.
User avatar
YoMan
Posts: 3164
Joined: Thu Apr 30, 2020 5:18 pm
Location: Częstochowa

Post

Czyli źle zrozumiałem. Ty nie potrzebujesz przycisku "dzwonka" tylko zdalny przekaźnik. Nie testowałem ale spróbowałbym następująco:
Dołożył bym wirtualny przekaźnik a następnie za pomocą reakcji lub skryptów wykonał procedurę:
Jeżeli virtual on/open -> furtka open -> virtual wyłącz/zamknij
Przetestuj i daj znać
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
User avatar
klew
Posts: 10957
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

Lukas2022 wrote: Fri Feb 21, 2025 8:53 am Jeśli masz na myśli, że przycisk w aplikacji ma wybudzać D1 mini, to rzeczywiście byłoby to najlepsze rozwiązanie. W momencie wzbudzenia przycisk nie będzie wciśnięty, ponieważ został zaprogramowany jako furtka – działa impulsowo przez 1 sekundę.
Z tego, co udało mi się dowiedzieć, wyłączenie Wi-Fi oznacza całkowity brak połączenia z internetem, co uniemożliwia natychmiastowe wybudzenie D1 mini lub innej płytki. Chyba że masz na myśli fizyczny przycisk, ale takiego nie ma i nie będzie (choć trochę się zagalopowałem – przypomina mi to słynną formułę naszego byłego ministra...).
Wracając do tematu – aplikacja w chmurze steruje oprogramowaniem D1 mini, więc czy naprawdę nie ma możliwości uruchomienia żadnej funkcji, która pozwoliłaby sterownikowi wykonać polecenie wykonane podczas uśpienia?
Dodałem również opcję Wake on LAN, ale w tym przypadku raczej nie zadziała. Tutaj potrzebne byłoby wykorzystanie pamięci chmury do realizacji opóźnionych zadań.
Nie ma takiej funkcji.

Supla nie ma żadnego wsparcia dla sterowania śpiącymi urządzeniami. Jedyne co mamy, to obsługa śpiących sensorów.

Jeśli koniecznie zależy Ci na czymś takim, to ja bym to zrobił inaczej:
1. Dodaję urządzenie na ESP z normalnym zasilaniem, które przedsatwia się jako "przekaźnik". Dodatkowo dokładam jakieś radio, albo konfiguruję ESP-NOW
2. Dodaję drugie urządzenie bateryjne (albo dowolny niskoprądowy procek z jakimś radiem, albo ESP z komunikacją po ESP-NOW).
3. Do Supli połączasz tylko to pierwsze urządzenie i w nim implmentujesz zapamiętywanie komend z serwera.
4. Urządzenie bateryjne cyklicznie się wybudza i pyta urządzenia zasilanego sieciowo, czy ma coś dla niego - jeśli tak, to przesyła polecenia i bateryjne to wykonuje.

Całość to całkiem fajny projekt DIY, w którym trzeba ogarnąć kilka tematów zarówno od strony sprzętowej jak i od strony oprogramowania (trzeba całość softu samemu napisać na oba urządzenia).
User avatar
Zibi_007
Posts: 1086
Joined: Tue Oct 31, 2023 10:06 pm

Post

klew wrote: Fri Feb 21, 2025 9:39 am
Lukas2022 wrote: Fri Feb 21, 2025 8:53 am Jeśli masz na myśli, że przycisk w aplikacji ma wybudzać D1 mini, to rzeczywiście byłoby to najlepsze rozwiązanie. W momencie wzbudzenia przycisk nie będzie wciśnięty, ponieważ został zaprogramowany jako furtka – działa impulsowo przez 1 sekundę.
Z tego, co udało mi się dowiedzieć, wyłączenie Wi-Fi oznacza całkowity brak połączenia z internetem, co uniemożliwia natychmiastowe wybudzenie D1 mini lub innej płytki. Chyba że masz na myśli fizyczny przycisk, ale takiego nie ma i nie będzie (choć trochę się zagalopowałem – przypomina mi to słynną formułę naszego byłego ministra...).
Wracając do tematu – aplikacja w chmurze steruje oprogramowaniem D1 mini, więc czy naprawdę nie ma możliwości uruchomienia żadnej funkcji, która pozwoliłaby sterownikowi wykonać polecenie wykonane podczas uśpienia?
Dodałem również opcję Wake on LAN, ale w tym przypadku raczej nie zadziała. Tutaj potrzebne byłoby wykorzystanie pamięci chmury do realizacji opóźnionych zadań.
Nie ma takiej funkcji.

Supla nie ma żadnego wsparcia dla sterowania śpiącymi urządzeniami. Jedyne co mamy, to obsługa śpiących sensorów.

Jeśli koniecznie zależy Ci na czymś takim, to ja bym to zrobił inaczej:
1. Dodaję urządzenie na ESP z normalnym zasilaniem, które przedsatwia się jako "przekaźnik". Dodatkowo dokładam jakieś radio, albo konfiguruję ESP-NOW
2. Dodaję drugie urządzenie bateryjne (albo dowolny niskoprądowy procek z jakimś radiem, albo ESP z komunikacją po ESP-NOW).
3. Do Supli połączasz tylko to pierwsze urządzenie i w nim implmentujesz zapamiętywanie komend z serwera.
4. Urządzenie bateryjne cyklicznie się wybudza i pyta urządzenia zasilanego sieciowo, czy ma coś dla niego - jeśli tak, to przesyła polecenia i bateryjne to wykonuje.

Całość to całkiem fajny projekt DIY, w którym trzeba ogarnąć kilka tematów zarówno od strony sprzętowej jak i od strony oprogramowania (trzeba całość softu samemu napisać na oba urządzenia).
Ja bym to zrobił trochę prościej. Normalnie wirtualny przekaźnik, który zmienia stan po aktywacji w aplikacji, a soft na uśpionym D1 mini, po wybudzeniu sprawdza stan tego wirtualnego przekaźnika i odpowiednio na niego reaguje. Wtedy pozostaje tylko do napisania soft po stronie D1, który sprawdza warunek (stan przekaźnika).

EDIT: wydaje się, że można to też zrobić bez pisania dedykowanego softu, wykorzystując tylko skrypty. Też z wykorzystaniem wirtualnego przekaźnika. Jako warunek wyzwolenia skryptu dajemy sprawdzenie czy D1 jest podłączony (wybudzony) i wirtualny przekaźnik jest włączony. Jeśli tak, to wykonuje odpowiednie działa (otwieranie). Powinno zadziałać. Trzeba przetestować.
Wiesz, że Supla współpracuje z urządzeniami Zigbee? Więcej szczegółów tutaj: https://forum.supla.org/viewforum.php?f=127

Nec Hercules contra plures!
User avatar
Lukas2022
Posts: 177
Joined: Fri Sep 02, 2022 3:09 pm

Post

Dziękuję wszystkim za chęć pomocy, cieszę się, że pojawiła się nadzieja na rozwiązanie problemu. Dwa podobne rozwiązania zaproponowali YoMan i Zibi_007, ale wydaje mi się, że prostsze rozwiązanie przedstawił YoMan.
Nigdy wcześniej nie dodawałem wirtualnego przekaźnika, więc nie do końca wiem, jak się za to zabrać. Dodałem go do aplikacji, ale nie ma zbyt wielu funkcji, a ja nie wiem, jak skonfigurować go z rzeczywistymi przekaźnikami "Otwórz" i "Zamknij". Proszę o dalszą pomoc – co i gdzie ustawiać, czy robić to bezpośrednio w sterowniku, czy przez stronę Supli. Dodam, że wszystko jest połączone z power bankiem, ale to także stwarza problem, ponieważ gdy D1 mini wejdzie w tryb uśpienia, brak poboru prądu natychmiast wyłącza power bank. Mam rozwiązanie – podłączę moduł, który co 10 sekund będzie sztucznie wykazywał pobór prądu na poziomie około 100mAh przez 1 sekundę, co pozwoli utrzymać power bank w trybie ładowania. Ciekawym rozwiązaniem może być moduł opóźniający z przekaźnikiem na NE555 5V.

Co może być przyczyną, że DHT11 nie pokazuje historii temperatur a jest podłączony od 12 godz. 53 min 50 sek. Taki zestaw
D1 Mini
DHT11
2 przekaźniki
pobrał z power banka 1218 mAh
You do not have the required permissions to view the files attached to this post.

Return to “GUI Generic”