Virtual relay we własnym kodzie ESP32-C3

Maciek663
Posts: 217
Joined: Thu Jan 11, 2024 6:33 am
Has thanked: 1 time
Been thanked: 1 time

Post

Alex1603 wrote: Wed Oct 29, 2025 9:43 pm jedynie jeśli by dało radę zmieniać tą histerezę co 0.1 albo 0.5 stopnia byłoby coś , nie ma to ogromnego znaczenia ale czasami lepiej porównywać coś prawie progowo .
Ja bym spróbował na trzy sposoby:

-tworzysz wirtualny termometr i pobierasz z niego zmienną ustawianą w cloud "dostosowanie temperatury" i przepisujesz to na histerezę,
-tworzysz dimmer - pobierasz z niego poziom - mnożysz np. x 10 i przepisujesz na histerezę,
- tworzysz virtual relay i ustawiasz na sztywno - jeśli off to histereza x, jeśli on to histereza y.

Oba pomysły z głowy, nie wiem czy to zadziała.
User avatar
Alex1603
Posts: 93
Joined: Sat Jan 01, 2022 1:46 pm

Post

Dla rozjaśnienia dodam , ale myślę że to jasne chodzi mi konkretnie o to , żeby zadawać w polu histereza w konfigu 0,1 … 0,5 …. 1,0 …. 1,5 ….. , czyli w polu nie int 1…2..3… a float z jednym polem precyzji dziesiętnej. Ale już mi przyszło na myśl żeby zadawać co jeden jak jest a przeliczać w kodzie -> histereza/10
Ale dzięki za pomoc i odpowiedzi
*-------------- Pomysłów po sufit, czasu po kostki --------------*
*------ https://github.com/Rebel1603?tab=repositories ------*
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Rozjasnij jeszcze jedno. Czy Ty wykorzystujesz kanał termostatu czy chcesz to zrobić od zera z użyciem GPM?
Maciek663
Posts: 217
Joined: Thu Jan 11, 2024 6:33 am
Has thanked: 1 time
Been thanked: 1 time

Post

Alex1603 wrote: Thu Oct 30, 2025 8:42 am Dla rozjaśnienia dodam , ale myślę że to jasne chodzi mi konkretnie o to , żeby zadawać w polu histereza w konfigu 0,1 … 0,5 …. 1,0 …. 1,5 ….. , czyli w polu nie int 1…2..3… a float z jednym polem precyzji dziesiętnej. Ale już mi przyszło na myśl żeby zadawać co jeden jak jest a przeliczać w kodzie -> histereza/10
Ale dzięki za pomoc i odpowiedzi
Żeby to fajnie wyglądało możesz też utworzyć kolejny termostat i tam co 0,1 możesz ustawiać temperaturę zadaną i ją przepisywać do histerezy. Tylko zakres termostatu musiałbyś zmienić od 0 do x, a nie wiem czy można od 0. Ewentualnie np. od 10 do x i później to 10 odejmować.
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Maciek663 wrote: Thu Oct 30, 2025 9:50 am Żeby to fajnie wyglądało możesz też utworzyć kolejny termostat i tam co 0,1 możesz ustawiać temperaturę zadaną i ją przepisywać do histerezy. Tylko zakres termostatu musiałbyś zmienić od 0 do x, a nie wiem czy można od 0. Ewentualnie np. od 10 do x i później to 10 odejmować.
Wydaje mi się bo też mnie temat zainteresował że należało by iść w innym kierunku jeśli by chcieć do tego użyć kanału termostatu.
Na kanale termostatu po prostu ustawiać różnicę która by powodowała zadziałanie przekaźnika. Czyli ustawianie termostatu było by ustawieniem różnicy a nie progu zadziałania. Oczywiście temperatura zadana na termostacie musiała by być w kodzie porównywana na bieżąco z pomiarami termometrów i na podstawie uwzględnionej różnicy ustawionej na termostacie w kodzie wyzwalało by się włączenie lub wyłączenie. Histereza ustawiana w termostacie jest i można ją ustawiać po ustawieniu w kodzie co 0.1. Dodatkowo takie rozwiązanie dawało by mozliwość korzystania z harmonogramu tygodniowego gdzie można by sobie było z dokładnością do kwadransa w tygodniu ustawić kiedy ma zadziałać jaka ustawiona różnica temperatur.
No i jeszcze jedno...
@Alex1603 domyśliłem się o co Ci chodziło z tym 0.1 dla histerezy. Chodziło CI o to jak to dodać na www.
Może się mylę ale zdaje się że wbudowanego CustomParameter dla double i float nie ma.
Spróbuj CustomTextParameter i zamianę str na double i masz gotową wartość do obliczeń w kodzie. Teoretycznie proste ;)
Maciek663
Posts: 217
Joined: Thu Jan 11, 2024 6:33 am
Has thanked: 1 time
Been thanked: 1 time

Post

zzrr wrote: Thu Oct 30, 2025 11:00 am
Wydaje mi się bo też mnie temat zainteresował że należało by iść w innym kierunku jeśli by chcieć do tego użyć kanału termostatu.
Na kanale termostatu po prostu ustawiać różnicę która by powodowała zadziałanie przekaźnika. Czyli ustawianie termostatu było by ustawieniem różnicy a nie progu zadziałania.
To o tym właśnie pisze - nie używasz histerezy termostatu do różnicy temperatur tylko nastawy termostatu:

Code: Select all

int16_t histereza = hvac->getTemperatureSetpointHeat();
Tylko wcześniej trzeba by ustawić np:

Code: Select all

  hvac->setTemperatureAuxMin(0); 
  hvac->setTemperatureAuxMax(500); 
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Maciek663 wrote: Thu Oct 30, 2025 9:50 am Żeby to fajnie wyglądało możesz też utworzyć kolejny termostat i tam co 0,1 możesz ustawiać temperaturę zadaną i ją przepisywać do histerezy.
Nie wiem... może ja nie umiem czytać...
Po za tym co ja tu napisałem...?
zzrr wrote: Wed Oct 29, 2025 9:51 pm ....
histerezę da sie co 0,1
hvac->setTemperatureHisteresisMin(10); // 10 to 0,1 jak masz w kodzie 100 to min jakie możesz ustawiać to 1. Musi być skasowany kanał na cloudzie po zmianach
hvac->setTemperatureHisteresisMax(1000);
a 10CLK musi działać tak jak masz. No chyba że coś innego w kodzie blokuje. Może gdzieś jakiegoś Delay() wstawiłeś i zegar się gubi
........
Nie ważne co kto pisał. Ja mówiłem żeby do zadziałania włącz/wyłącz użyć po prostu ustawienia temperatury a nie histerezę. Histerezę to trzeba zostawić do regulacji punktu zadziałania lub ponownego zadziałania przy osiągnięciu różnicy.
User avatar
Alex1603
Posts: 93
Joined: Sat Jan 01, 2022 1:46 pm

Post

Dopiero zaczynam z własnym kodem i zostałem zasypany informacjami, które po części sa mi obce.
Chciałem się tylko skupić w moim projekcie na różnicy temperatur - jak opisywałem wcześniej.
Akurat termostat znam tylko z jednej nastawy ręcznej i porównania z jedną mierzoną temperaurą - sam używam do dogrzewania przy zbyt niskich temperaturach. Sądzę, że modyfikacja obecnego termostatu byłaby trudna, przynajmniej dla mnie. Na ten moment chcę dokończyc to co już zaczyna być, a testy moje i innych pokazałyby w którą stronę można pójść. Dzisiaj mam plan przetestować czy funkcjonalnie to działa jak trzeba i zaimplementować w najbliższych dniach w moim garażu. Obserwacja da odpowiedź co można by jeszcze zmienić.
Nie było tyle czasu termostatu różnicowego, że wszystko cokolwiek co się pojawi będzię zbawieniem :lol:.

Oczywiście udostępnię wszystkim zainteresowanym wyniki pracy. W planie mam zaprojektować stosowny obwód drukowany do którego można by wygodnie podłączyć zasilanie, czujniki i zasilanie sterowane (np. 230V ) przez przekaźnik na płytce. Obwód byłby bardzo prosty ale wygoda montażu bezcenna - skończyłem już dawno z lepieniem wszystkiego na uniwersalnym laminacie 8-) - oprócz fazy rozwojowej oczywiście.
*-------------- Pomysłów po sufit, czasu po kostki --------------*
*------ https://github.com/Rebel1603?tab=repositories ------*
zzrr
Posts: 1864
Joined: Wed Oct 26, 2022 7:35 pm
Has thanked: 76 times
Been thanked: 119 times

Post

Alex1603 wrote: Thu Oct 30, 2025 1:05 pm ...Chciałem się tylko skupić w moim projekcie na różnicy temperatur - jak opisywałem wcześniej.
Good idea👍
lukasz06
Posts: 2543
Joined: Sun Jul 17, 2022 6:53 pm
Has thanked: 46 times
Been thanked: 21 times

Post

Myśle, że Twój post niechcący przyspieszy dodanie tej funkcjonalności do Clouda i Apk :)

Return to “Pomoc”