Powiadomienia
Wyczyść wszystko

Flow switch czujnik przepływu

21 Wpisów
2 Użytkownicy
0 Likes
480 Wyświetleń
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
fs1
fs2

Witam. Prośba o pomoc. Próbuję stworzyć w domoticzu skrypt pozwalający awaryjnie wyłączyć agregat pompy w sytuacji braku przepływu. Stworzyłem do tego przycisk "switch". Polega on na włączeniu guzika micro switch na jedną sekundę i "puszczenie" go. No i problem. Bo program wykonuje w kółko to zdarzenie, a ja chcę, żeby zrobił to tylko raz. Jak to zrobić ?

 
Dodane : 18/01/2024 1:47 am
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@geoterm proponuję dodać sobie w domoticz takiego pomocnika, który się nazywa zmienna użytkownika, ustawiasz sobie dowolną nazwę, typ liczba całkowita i ustawiasz ją na 0.

W bloczkach robisz IF V1 < 5 and Pel > 100 and zmienna = 0 

SET zmienna = 1 po 20 sek 

ELSEIF V1 < 5 and Pel > 100 and zmienna = 1

SET  micro switch ON

ELSEIF V1 > 5 and Pel > 100 

SET zmienna = 0

Dzięki temu uzyskasz 20 sekundowe opóźnienie wyłączenia, na wypadek krótkotrwałego braku przepływu

 
Dodane : 18/01/2024 11:01 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
flow switch

Zrobiłem -  dzięki za konkretną odpowiedź. 

Jednak coś nie hula jeszcze. Coś nie działa. 

W logach :

EventSystem: Event triggered: Flow Switch_3
 
 
Dodane : 19/01/2024 1:51 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Pierwszy odczyt przepływu ustawia zmienną licznik na 1 po 10 sek , drugi odczyt włącza on/off i ustawia zmienną na 2 , odczyt przepływu większy niż 5 ustawia zmienną na 0. Sprawdzone na zwykłym przełączniku ON/OFF z opóźnieniem wyłączenia 1 sek .

1

 Nie wiem co to jest "pel" , ale to nie ma znaczenia, po jego dodaniu też powinno działać

 
Dodane : 19/01/2024 8:40 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 

"P el" to jest moc elektryczna w Watach rzeczywista chwilowa jaką pobiera pompa ciepła w danej chwili. Widzę, że jest bez przecinków " " może u mnie też ma być bez przecinków.  

 
Dodane : 19/01/2024 8:44 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 

Taka myśl mi przyszła, żeby zmienić jedną z wartości na >= aby wartość 5 była też brana pod uwagę. 

 
Dodane : 19/01/2024 10:22 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Dodane przez: @geoterm

Taka myśl mi przyszła, żeby zmienić jedną z wartości na >=

Masz to w moim przykładzie przecież 

 
Dodane : 19/01/2024 10:30 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 

Już wiem o co chodzi. ALe to jest głupie :).Brakowało mu w 3 linijce warunku z wyłącznikiem off. Jeśli daję mu warunek w 2 linijce z on to muszę  dać warunek i na off. Działa :)!!

Zrzut ekranu 2024 01 20 001518

 

 
Dodane : 20/01/2024 1:17 am
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
działa

 To skumałem już w końcu.

1 linijka : Czyli jeżeli temperatura spadnie poniżej lub =  20 * i zmienna =0 to zmień zmienną na 1.

2 linijka : jeżeli temperatura spadła poniżej 20 *C i zmienną zmieniłeś na 1 to włącz przekaźnik, który wyłączy agregat.

3 linijka jeżeli temperatura wróci do normy czyli >20*C i zmieniłeś zmienną na 1 to wyłącz przekaźnik, wyłączający pompę. 

I do tego momentu jest spoko. Natomiast problem się pojawia taki:

Ustawiłem sobie włącznik z wyłączaniem czasowym 1s. Czyli druga linijka ciągle mi załącza przekaźnik i jest choinka, a ja chcę, żeby zrobił to tylko raz, a on jest uparty bo mu kazałem włączyć, no to włącza. Ta funkcja jest mi potrzebna bo to jest reset pompy ciepła. Czyli przycisk musi być  wciśnięty nie ciągle, ale tylko na 1 sekundę i puszczony- jak dzwonek. W przypadku powrotu warunku normalnego też ma ten przycisk wcisnąć na 1 sekundę. Może muszę zastosować jakiś pośredni przekaźnik, który z jednej strony będzie zapięty na stałe a z drugiej po takmi zapięciu albo rozpięciu da jeden impuls (tylko, że dobrze by było, żeby ten impuls trwał z jedną sekundę). A może jakiś inny rodzaj włącznika muszę wybrać ?

Zrozumiałem, że ten system opcję off wykonuje raz, natomiast on jest uparty i do skutku, ciągle. Jesli bym odwrócił logikę, to włączy mi raz, ale będzie wyłączał ciągle. 

 
Dodane : 20/01/2024 1:36 am
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@geoterm tak szczerze, to niewiele zrozumiałeś i nic nie jest głupie, tylko właściciel systemu ma problem ze skopiowaniem gotowego przykładu. Co się dzieje ze zmienną w drugiej linii kodu w moim przykładzie? Czy nie przyjmuje czasem wartości 2 tak żeby już nic się nie włączało w pętli ?

Po drugie, skoro chcesz przycisk to ustaw w samym esp PulseTime dla tego przekaźnika, albo w samym blockly taki układ

1

wtedy w obu przypadkach włączy tylko na sekundę.

Po trzecie przy warunku temp > 20 , też trzeba pomyśleć co zrobić z wartością zmiennej żeby nie klepało przy każdym odczycie temperatury, ale to już zostawię do skumania 🙂 Dodam tylko że rozwiązanie jest dość proste.

 
Dodane : 20/01/2024 8:30 am
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
image

Zrobiłem tak i działa . Dziękuję za wskazówki . Zmodyfikuje  jeszcze ten układ  o ten puls time w esp . 

 
Dodane : 20/01/2024 12:19 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
FS11

Tak wygląda moja aktualna wersja skryptu FS już dla PC. Mam pytanie i mały problem. Problem się pojawia w 1 linijce gdy urządzenie zostało włączone powtórnie (ręcznie-bo takie jest założenie-domoticz odstawia agregat, a ja musze pójść zobaczyć co się dzieje i go od nowa włączyć). Zatem włączam i realizuje się 3 linijka czyli pojawia się przepływ >3l/min  ^ Pel>100W ^ zmienna FS=2 => zmienia zmienną FS na "0" i lądujemy w 1 linijce. I tu jest problem bo nie przęłącza zmiennej z "0" na "1". I to jest dla mnie nielogiczne. Nie rozumiem go o co mu chodzi. 

Kiedy zrobię następującą operację dopiero zmieni zmienna FS z 0 na 1 czyli : zamknę zawór za pompą obiegową PC raz, otworzę i drugi raz zamknę i wtedy odstawia agregat. Ale powinien zrobić to już za 1 -szym razem zamknięcia zaworu,  a nie dopiero za 2. Innymi słowy. Odstawia agregat nie po 10 sekundach ale od razu. Jak zamknę zawór liczę 10 sekund i dopiero wtedy powinien odstawić agregat. Proszę o pomoc. 

 
Dodane : 21/01/2024 12:12 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Dodane przez: @geoterm

I tu jest problem bo nie przęłącza zmiennej z "0" na "1". I to jest dla mnie nielogiczne.

A dlaczego ma zmienić wartość zmiennej na 1 skoro przepływ jest > 3 , zmieni dopiero gdy przepływ będzie mniejszy lub równy 3 + moc będzie powyżej 100W + minie 10 sek

 
Dodane : 21/01/2024 1:07 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 

No ma zmienić zmienną z 0 na 1 bo zadałem mu to czyli:

zamknąłem zawór na dłużej niż 10 sekund (czyli V<3 l/min ^moc>100W^ t>10s)  <=> zmień zmienną z 0 na 1. 

 
Dodane : 21/01/2024 1:11 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 

żeby to działało musi być zrobione tak:

1. trzeba zamknąć zawór za pompą obiegową  na dłużej niż 10 sekund -  i to zmienia zmienną z 0 na 1,

i teraz mamy układ aktywny

teraz jeśli zamkniemy zawór na choćby jedną sekundę - odstawia agregat natychmiast, czyli źle.

On ma odstawiać agregat po każdorazowym zamknięciu zaworu na dłużej niż 10 sekund. 

 
Dodane : 21/01/2024 1:24 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 

Chyba już powoli kapuje 🙂

 
Dodane : 21/01/2024 1:43 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@geoterm  generalnie nie wiem po co ten trzeci elseif, skoro i tak musisz pójść sprawdzić i włączyć. Po wyłączeniu przez skrypt w drugim else dodaj zmianę zmiennej na 0 po 10 sek i już.

Teraz gdy system sam wyłączy zostawia zmienną na 2 , ty włączasz ręcznie i po spełnieniu V>3 itd , w pierwszej kolejności następuje zmiana zmiennej na 0 i dopiero przy następnym cyklu zmiana na 1.

 

 
Dodane : 21/01/2024 1:58 pm
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
fs3

działa, dziękuję. 

 
Dodane : 22/01/2024 2:20 am
(@geoterm)
Wpisów: 16
Bywalec
Autor tematu
 
fs dodajmy opoznienie

Czy da się zrobić tak, żeby druga linijka była realizowana dopiero wtedy i tylko wtedy gdy V1<3 l/min ale gdy taki stan będzie trwał dłużej niż 10 sekund ?

 
Dodane : 22/01/2024 12:07 pm
isom
 isom
(@isom)
Wpisów: 5085
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Ta druga linijka jest realizowana po spełnieniu pierwszej, która jest identyczna a w tej pierwszej regulujesz czas zmiany FS.

10 minut, o których piszesz nijak się ma do tego skryptu, chyba że po zamknięciu zaworu nie wszystkie warunki zostają spełnione.

Ja jak miałem problemy z tak prostymi skryptami, to zaczynałem je rozkładać na czynniki i dopiero jak działała jedna część dokładałem kolejne. Ja bym zrobił sobie wirtualny włącznik nazwany test, wywalił sprawdzanie mocy i ustawił włączanie tego test gdy V1<3 a wyłączanie gdy V1>3. Jak to będzie działać dodajemy zmienną i czas , znów sprawdzamy i jak działa z opóźnieniem dodajemy moc.

Za pomocą tego przełącznika test wyeliminujesz błędy, które mogą wynikać np z nie wysłania polecenia do przycisku w esp itd.

 

 
Dodane : 22/01/2024 1:12 pm
Strona 1 / 2
Udostępnij: