Też korzystałem ale sukcesywnie przechodzę na zwykły termostat, gdzie termometr jest na linku bezpośrednim. Jest to pewniejsze, ponieważ w przypadku problemu z netem skrypt już nie sprawdza czy grzanie jest włączone tylko wysyła komendę załączenia jednorazowo. Termostat na linku pracuje cały czas. Polecammmiikk wrote: Wed Feb 26, 2025 9:01 am Z drugiej strony od 3 lat korzystam z wirtualnego termostatu supla scripts i tylko 2 ray byl problem z internetem ze zrobilo sie w domu za zimno na 3 h![]()
Termostat plus drugi wemos wykonawczy
-
YoMan
- Posts: 3521
- Joined: Thu Apr 30, 2020 5:18 pm
- Location: Częstochowa
- Has thanked: 3 times
- Been thanked: 3 times
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
________________________________________
Wziąłem udział w SOP2023 & SOP2024
-
rysieks
- Posts: 30
- Joined: Tue Feb 25, 2025 12:22 pm
Witam, może się dołączę do dyskusji;
Popełniłem podobną komunikacją pomiędzy ESP32 Supla a ESP32 klientem.
UDP ma tą zaletę że pakiety sobie krążą po lokalnej sieci, i każde urządzenie w sieci może tą informację wykorzystać i swoją przesłać (np. temperaturę z czujnika).
Natomiast ESP-NOW ma w stosunku do UDP dwie niekiedy bardzo pożądane cechy ;
1. jeżeli chodzi o zużycie enrgii urządzenia bateryjnego (czujnik temperatury w uśpieniu, średni czas od wybudzenia do końca potwierdzonej transmisji dwukierunkowej 85-120 ms., nieosiągalny na WiFi, co przekłada się na żywotność baterii.)
2. jeżeli chodzi o zasięg (zdecydowanie większy zasięg pewnego działania, w trybie WiFi miejsca nieosiągalne, lub z częstymi przerwami komunikacji).
Oczywiście są i wady jakie były tu wyszczególnione - znajomość MAC-adresu, oraz praca na 1 kanale - którą łatwo można obejść szukając po
kanałach NOW (ok 10 ms) a nie po sieci WiFi (czasem i 6 sek.).
I tutaj mam pytanie do bardzej kumatych w Supli; Przekazuję dane z Supli metodą taką jak na początku dyskusji,
odczytując stan GPIO;
Czy można podłączyć się do Supli i wykonać moją transmisję opakowaną w funkcję() przy zmianie stanu OUTPUT_GPIO,
aby cały czas nie sprawdzać stanu OUTPUT_GPIO ?
Popełniłem podobną komunikacją pomiędzy ESP32 Supla a ESP32 klientem.
UDP ma tą zaletę że pakiety sobie krążą po lokalnej sieci, i każde urządzenie w sieci może tą informację wykorzystać i swoją przesłać (np. temperaturę z czujnika).
Natomiast ESP-NOW ma w stosunku do UDP dwie niekiedy bardzo pożądane cechy ;
1. jeżeli chodzi o zużycie enrgii urządzenia bateryjnego (czujnik temperatury w uśpieniu, średni czas od wybudzenia do końca potwierdzonej transmisji dwukierunkowej 85-120 ms., nieosiągalny na WiFi, co przekłada się na żywotność baterii.)
2. jeżeli chodzi o zasięg (zdecydowanie większy zasięg pewnego działania, w trybie WiFi miejsca nieosiągalne, lub z częstymi przerwami komunikacji).
Oczywiście są i wady jakie były tu wyszczególnione - znajomość MAC-adresu, oraz praca na 1 kanale - którą łatwo można obejść szukając po
kanałach NOW (ok 10 ms) a nie po sieci WiFi (czasem i 6 sek.).
I tutaj mam pytanie do bardzej kumatych w Supli; Przekazuję dane z Supli metodą taką jak na początku dyskusji,
odczytując stan GPIO;
Code: Select all
relayData.relayState = digitalRead(OUTPUT_GPIO);
esp_now_send(broadcastAddress, (uint8_t *) &relayData, sizeof(relayData));
aby cały czas nie sprawdzać stanu OUTPUT_GPIO ?
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Nie rozumiemrysieks wrote: Wed Feb 26, 2025 11:48 pm Przekazuję dane z Supli metodą taką jak na początku dyskusji,
odczytując stan GPIO;
Czy można podłączyć się do Supli i wykonać moją transmisję opakowaną w funkcję() przy zmianie stanu OUTPUT_GPIO,Code: Select all
relayData.relayState = digitalRead(OUTPUT_GPIO); esp_now_send(broadcastAddress, (uint8_t *) &relayData, sizeof(relayData));
aby cały czas nie sprawdzać stanu OUTPUT_GPIO ?
Najlepsze suple dla Twojego domu 
-
rysieks
- Posts: 30
- Joined: Tue Feb 25, 2025 12:22 pm
Ok. postaram się wyjaśnić to na przykładzie.
Nie mogłem odszukać tej dyskusji, ale dzisiaj wreszcie na nią wpadłem viewtopic.php?t=3403
w pliku io.h obecnej biblioteki jest komentarz;
// Ta klasa może być używana do nadpisywania metod digitalRead i digitalWrite.
// Jeśli chcesz dodać niestandardowe zachowanie, np. podczas odczytu/zapisu z jakiegoś
// cyfrowego pinu, możesz dziedziczyć po klasie Supla::Io, implementować
// własne metody customDigitalRead i customDigitalWrite i utworzyć instancję
// tej klasy. Zostanie ona automatycznie zarejestrowana, a SuplaDevice będzie jej używać.
// Przykład użycia: implementacja dodatkowej logiki, gdy stan przekaźnika
// zostanie zmieniony.
z przykładu w dyskusji z linku;
obecnie to byłoby chyba coś w ten deseń;
W efekcie - jeżeli dobrze rozumuję;
ESP_Supla jeżeli chce zmienić stan pinu, czy to z powodu naciśniecia przycisku fizycznego, czy też kliknięcia w Apce, ew. harmonogramu - uruchamia przy okazji moją funkcję customDigitalWrite, gdzie mogę wprwadzić swoją reakcję na to zdarzenie (np. wysłać komunikat NOW).
Nie jestem biegły w języku obiektowym, dopiero zgłębiam tajniki wiedzy w tym zakresie.
Nie mogłem odszukać tej dyskusji, ale dzisiaj wreszcie na nią wpadłem viewtopic.php?t=3403
w pliku io.h obecnej biblioteki jest komentarz;
// Ta klasa może być używana do nadpisywania metod digitalRead i digitalWrite.
// Jeśli chcesz dodać niestandardowe zachowanie, np. podczas odczytu/zapisu z jakiegoś
// cyfrowego pinu, możesz dziedziczyć po klasie Supla::Io, implementować
// własne metody customDigitalRead i customDigitalWrite i utworzyć instancję
// tej klasy. Zostanie ona automatycznie zarejestrowana, a SuplaDevice będzie jej używać.
// Przykład użycia: implementacja dodatkowej logiki, gdy stan przekaźnika
// zostanie zmieniony.
z przykładu w dyskusji z linku;
Code: Select all
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
//coś tam robię
}
void setup(){
...
SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
...
}
Code: Select all
void customDigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
//coś tam robię
}
void setup(){
...
???(&customDigitalWrite); // aby ta moja funkcja nadpisała tą z klasy
...
}
ESP_Supla jeżeli chce zmienić stan pinu, czy to z powodu naciśniecia przycisku fizycznego, czy też kliknięcia w Apce, ew. harmonogramu - uruchamia przy okazji moją funkcję customDigitalWrite, gdzie mogę wprwadzić swoją reakcję na to zdarzenie (np. wysłać komunikat NOW).
Nie jestem biegły w języku obiektowym, dopiero zgłębiam tajniki wiedzy w tym zakresie.
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Czyli chodzi o to, że masz kanał Supla::Control::Relay (btw. jeśli nie potrzebujesz zmieniać faktycznie stanu na GPIO, a tylko mieć kanał i móc nim sterować, to użyj VirtualRelay).rysieks wrote: Thu Feb 27, 2025 11:20 am W efekcie - jeżeli dobrze rozumuję;
ESP_Supla jeżeli chce zmienić stan pinu, czy to z powodu naciśniecia przycisku fizycznego, czy też kliknięcia w Apce, ew. harmonogramu - uruchamia przy okazji moją funkcję customDigitalWrite, gdzie mogę wprwadzić swoją reakcję na to zdarzenie (np. wysłać komunikat NOW).
Gdy coś zasteruje tym kanałem, to chcesz wykonać jakąś własną metodę, która coś wyśle na ESP Now.
Zgadza się?
Jeśli tak, to tutaj lukfud wrzucił przykład jak to zrobić: viewtopic.php?p=105778#p105778
Zamiast "Serial.write" wstawiasz swoje wysyłanie po ESP Now.
Tylko klasę nazwij jakoś lepiej niż "addedActionsClass"
Najlepsze suple dla Twojego domu 
-
rysieks
- Posts: 30
- Joined: Tue Feb 25, 2025 12:22 pm
Ok.
Wielkie Dzięki.
O coś takiego mi chodziło !
Mam normalny kanał, normalnie działający na ESP_Supla,
a poprzez komunikację ESP-NOW z klientem robię jakby wyniesienie przekaźnika i przycisku do miejsca zdalnego.
Przekaźnik i przycisk są jakby powielone (zdublowane, połączone równolegle).
A, i wygląda zdecydowanie ładniej niż sprawdzanie stanu przekaźnika w pętli głównej
, nie mówiąc o szybkości.
Przetestuję jeszcze działanie przycisku.
Mam nadzieję że wystawiając w ESP_Supla komendy;
relay1->turnOn();
relay1->turnOff();
relay1->toggle();
na podstawie polecenia z komunikacji ESP-NOW, będzie to automatycznie aktualizowane w Apce.
Wielkie Dzięki.
O coś takiego mi chodziło !
Mam normalny kanał, normalnie działający na ESP_Supla,
a poprzez komunikację ESP-NOW z klientem robię jakby wyniesienie przekaźnika i przycisku do miejsca zdalnego.
Przekaźnik i przycisk są jakby powielone (zdublowane, połączone równolegle).
A, i wygląda zdecydowanie ładniej niż sprawdzanie stanu przekaźnika w pętli głównej
Przetestuję jeszcze działanie przycisku.
Mam nadzieję że wystawiając w ESP_Supla komendy;
relay1->turnOn();
relay1->turnOff();
relay1->toggle();
na podstawie polecenia z komunikacji ESP-NOW, będzie to automatycznie aktualizowane w Apce.
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Tak, zaktualizuje się.rysieks wrote: Thu Feb 27, 2025 1:35 pm Ok.
Wielkie Dzięki.
O coś takiego mi chodziło !
Mam normalny kanał, normalnie działający na ESP_Supla,
a poprzez komunikację ESP-NOW z klientem robię jakby wyniesienie przekaźnika i przycisku do miejsca zdalnego.
Przekaźnik i przycisk są jakby powielone (zdublowane, połączone równolegle).
A, i wygląda zdecydowanie ładniej niż sprawdzanie stanu przekaźnika w pętli głównej, nie mówiąc o szybkości.
Przetestuję jeszcze działanie przycisku.
Mam nadzieję że wystawiając w ESP_Supla komendy;
relay1->turnOn();
relay1->turnOff();
relay1->toggle();
na podstawie polecenia z komunikacji ESP-NOW, będzie to automatycznie aktualizowane w Apce.
Ale jeśli ten "relay1" to ten sam, co przed chwilą pisaliśmy, to te polecenia również wygenerują komunikat po ESP now.
Najlepsze suple dla Twojego domu 
-
rysieks
- Posts: 30
- Joined: Tue Feb 25, 2025 12:22 pm
Ok. I powinien się generować komunikat, bo stan przekaźnika klienta NOW ma być odzwierciedleniem stanu ESP_Supla.
Czyli z tego wynika, że wszystko będzie współpracowało według mojego założenia.
Jeszcze raz Wielkie Dzięki.
Jak napotkam jakiś problem, o którym jeszcze nie wiem, to pozwolę sobie odświeżyć temat.
Czyli z tego wynika, że wszystko będzie współpracowało według mojego założenia.
Jeszcze raz Wielkie Dzięki.
Jak napotkam jakiś problem, o którym jeszcze nie wiem, to pozwolę sobie odświeżyć temat.
-
george1255
- Posts: 426
- Joined: Fri Sep 02, 2022 8:48 pm
- Location: Włodawa
- Has thanked: 12 times
- Been thanked: 7 times
Duch__ wrote: Sun Feb 16, 2025 5:28 am Wadą tego softu jest to że trzeba znać adres MAC docelowego modułu esp.
Panowie, jest tryb brodcast w ktoym nie trzeba adresowac po mac, dane sa wysylane w eter i odpowiednio skonstruowana widomosc jest odbierana przez inne urządzenie, ale tylko konkretne ja rozumie i wykonuje, np przełączenie przekaźnikarysieks wrote: Wed Feb 26, 2025 11:48 pm
Oczywiście są i wady jakie były tu wyszczególnione - znajomość MAC-adresu
