Powiadomienia
Wyczyść wszystko

Domoticz Blockly

Adam Dudek
(@adamdudek)
Początkujący

Witam

Posiadam instalacje fotowoltaiczną która działa ponad rok bez żadnych problemów. Ostatnio sąsiedzi postawili kilka instalacji fotowoltaicznych na swoich dachach, a że ja jestem na końcu linii patrząc od transformatora pojawił się stary dobrze znany problem. Jak zaświeci dobrze słoneczko to napięcie w sieci wzrasta do 250V czasem więcej co grozi uszkodzeniem urządzeń domowych. Podobny problem występuje u moich sąsiadów. Żeby to trochę okiełznać postanowiłem załączać grzałkę w bojlerze 300L o mocy 2000W nie rano a w godzinach największej produkcji z paneli co rzeczywiście obniża napięcie na tej fazie o ok 6-7V niby niewiele, ale zawsze coś. Postanowiłem także, że zrobię dodatkowe sterowanie tą grzałką  tak a żeby w razie wzrostu napięcie powyżej np. 247V załączał mi grzałkę  i po spadku napięcie do 243V oraz odliczeniu np. 30 sekund (może więcej zobaczę) grzałkę wyłączał.  W Domoticzu bawię się dopiero od kilku dni, ale ustawiłem Blockly w taki sposób jak na załączonym obrazku.

Problem w tym, że przekaźnik grzałki będzie pewnie się załączał jak tylko napięcie przekroczy 247V i od razu wyłączał jak tylko się załączy grzałka ( nastąpi obciążenie grzałką co obniży napięcie do tych 243V)tak w kółko. Potrzebuje tak przerobić te klocki a żeby po obniżeniu napięcia do 243V przekaźnik był załączony jeszcze 30 sekund a w razie wzrostu napięcie przedłużał to załączenie grzałki o kolejne 30 sekund. 

Będę wdzięczny za pomoc.

 

 

 

grzałka
Grzałka off
Cytuj
Autor tematu Dodane : 09/03/2021 7:19 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek to co sobie skleciłeś raczej nie zadziała poprawnie bo ustawiłeś  gdy napięcie będzie większe niż 243V to wyłącz grzałkę a gdy będzie mniejsze od 247 to ją włącz . Czyli co będzie gdy napięcie będzie 245 V ?

Może dodaj sobie jedną zmienną z dowolną nazwą i ustaw ją jak liczba całkowita daj jej wartość 0 i  zrób sobie taki układ klocków

1

 To nie jest testowane bo wrzuciłem to pijąc poranną kawę , ale powinno działać tak . jak napięcie wzrośnie powyżej 240 V to po 20 sek wartość zmiennej zostanie ustawiona z 0 na 1 , gdy do tego dojdzie i napięcie dalej będzie rosło i przekroczy 245V to włączy się grzałka .

Gdy napięcie spadnie poniżej 240V to po 10 sek zmien się wartość zmiennej na 0 i jeśli to napięcie dalej będzie poniżej 240V to wyłączy grzałkę po 30 sek.

Pewnie to nie jest doskonałe , ale lepsze niż to co sam skleciłeś 

OdpowiedzCytuj
Dodane : 09/03/2021 8:14 am
Adam Dudek
(@adamdudek)
Początkujący

@isom

Witam

Bardzo dziękuje za zainteresowanie tematem

Chciałem dziś przetestować te ustawienia, ale pojawił się drobny problem którego niestety nie umiem sam rozwiązać.

W bloku Var M-R nie mam pozycji napięcie. (w innych blockach Var też pusto). 

Penie gdzieś trzeba coś dodać/zmienić, ale niestety nie wiem gdzie.

Z góry dziękuje za podpowiedz 

 

 

 

domoticz

 

OdpowiedzCytuj
Autor tematu Dodane : 10/03/2021 7:00 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek to Var napięcie to nic innego jak dodana zmienna w systemie o nazwie napięcie . Możesz sobie dodać dowolną nazwę . Wchodzisz w Konfiguracja , Więcej Opcji i Zmienne Użytkownika i tam dodajesz

zmienna

 

OdpowiedzCytuj
Dodane : 10/03/2021 7:26 am
Adam Dudek
(@adamdudek)
Początkujący

@isom

Dzieki dziś bedzę testował te ustawienia 

Pozdrawiam 

OdpowiedzCytuj
Autor tematu Dodane : 10/03/2021 7:30 am
Adam Dudek
(@adamdudek)
Początkujący

@isom

Witam

pierwsze testy wyglądają pomyślnie. Bardzo dziękuje za pomoc

Wczoraj wyjście z grzałka uruchomiło się dwa razy za kilka minut więc chyba będzie ok.

A gdzie mogę zmienić opcje , żeby wykresy napięć były robione z większą częstotliwością. Teraz chodząc po wykresach napięcia możemy czytać wartości co pięć minut, bo co tyle jest kolejny odczyt na wykresie. Chce dla trzech wykresów napięcia L1, L2, L3 zmienić opcje a żeby wykresy rysowało mi z większą częstotliwością nawet co 1 sekunde. (wiem pewnie szybciej zarżnie mi karte sd i wzrośnie diametralnie wykorzystanie procesora, ale to test tylko na kilka dni) 

Napięcie do Domoticza jest wysyłane co 1 sekundę. Potrzebuje namierzyć maksymalne napięcie jakie zarejestruje Domoticz przez cały dzień dodatkowo potrzebuje namierzyć która z trzech faz ma zwykle największe napięcie po to a żebym właśnie pod nią podłączył pompa ciepła która pracuje teraz praktycznie cały czas pobierając 1,5kW tym samym obniżając mi napięcie na fazie która zwykle ma takie napięcie najwyższe. 

Z góry dziękuje za odpowiedz

napięcie

 

 

OdpowiedzCytuj
Autor tematu Dodane : 11/03/2021 6:43 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek nawet gdyby można to łatwo zrobić , to z tak szybko rosnącą bazą danych , domoticz padnie po kilku godzinach i juz nic nie zadziała . jak bardzo chcesz to musisz skorzystać z zewnętrznej bazy danych np InfluxDB i Grafany. Tak możesz sobie aktualizować wykres co sekundę . W samym domoticz wymaga edycji bazy sql a co za tym idzie na 90 % zawieszenia całego systemu .

Jak nie masz zainstalowanej Grafany i InfluxDB to skorzystaj z obrazu smarticz . Edycji bazy domoticz sam bym się nie podjął i nikomu nie polecam

OdpowiedzCytuj
Dodane : 11/03/2021 7:10 am
Adam Dudek
(@adamdudek)
Początkujący

Blockly dla grzałki na fazie pierwszej zrobione. Robię teraz dla fazy drugiej i trzeciej (grzałki 2 i 3) to samo ale mam kolejne pytania. 

1. Czy dla każdej kolejnej grzałki/Fazy musze zrobić osobną zmienną L1, L2, L3 czy mogę korzystać z tej samej zmiennej?

2. Jak skopiować wszystkie te fafelki (Blockly), tak a żebym mógł sobie je wkleić do kolejnego skryptu np. Sterowanie grzałką L2 a potem zmienił tylko w kilku pozycjach napięcie z L1 na L2 i wyjście grzałka L1 na grzałka L2. Pytam tak na przyszłość, bo żeby zrobić taki skryp od nowa dla kolejnej fazy to trochę się musze przy tym usiedzieć a potrem i tak na koniec sprawdzanie wszystkiego po kilka razy czy się czasem gdzieś nie pomyliłem 

 

 

 

OdpowiedzCytuj
Autor tematu Dodane : 12/03/2021 6:59 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek wartość zmiennej w skrypcie zależy od wartości napięcia konkretnej fazy i dzięki temu zapobiega częstemu klepaniu przekaźnika , jak tylko jedną zmienną uzależnisz od wszystkich trzech faz to wystarczy, że napięcie na jednej fazie podskoczy i wpłynie na zmianę wartości tej zmiennej . Odpowiedz nasuwa się sama .

Co do kopiowania tego skryptu, to uważam, że trening czyni mistrza i warto to sobie zrobić indywidualnie dla każdej fazy . Przy trzecim pójdzie jak z płatka a Ty bardziej się wgryziesz w układanie tych klocków . Mi zrobienie tego przykładowego układu zajęło może 5 minut, ale jak bardzo chcesz to są takie dwa okienka export/ import za pomocą których można skopiować cały układ do pliku tekstowego i wkleić potem dowolną ilość razy. Ma to uzasadnienie jak skrypt zajmuje cały ekran i składa się z bardzo dużej ilość bloków , przy tym układzie i tak będziesz musiał zmienić 80% zawartości.

 

OdpowiedzCytuj
Dodane : 12/03/2021 7:32 am
Adam Dudek
(@adamdudek)
Początkujący

@isom

Temat grzałek już mam załatwiony 🙂

Biorę się teraz za sterowanie Grzaniem CWU przez pompę ciepła

Potrzebuje tak ułożyć klocki a żeby załączało mi wyście "Głowica_Kuba" jeśli "Start_CWU" jest aktywne  a wyjście "Wyj10 Podłogówka opóźnienie" jest wyłączone, i oczywiście odwrotnie wyłączało wyjście "Głowica_Kuba" jeśli "Start_CWU" jest wyłączone  a wyjście "Wyj10 Podłogówka opóźnienie" jest załączone. 

Wystarczy mi tak najprościej żebym mógł załapać logikę i mógł już później samemu bawić się tymi klockami w miarę potrzeb. 

Coś tam poskładałem poniżej, ale pewnie źle, bo już widzę, że brakuje mi akcji co jeśli oba są załączone, lub oba wyłączone

P.S. Chce żeby to wyjście "Głowica_Kuba" było aktywne tylko w jednym wypadku kiedy  "Start_CWU" jest aktywne  a wyjście "Wyj10 Podłogówka opóźnienie" jest wyłączone

Z góry dziękuje za podpowiedz

 

 

start CWU

 

 

OdpowiedzCytuj
Autor tematu Dodane : 12/03/2021 1:20 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

Zmień "AND" na "OR" tak 

1

 Takie proste 

OdpowiedzCytuj
Dodane : 12/03/2021 3:09 pm
Adam Dudek
(@adamdudek)
Początkujący

@isom

Witam

Prosiłbym o sprawdzenie tych klocków. Wstępnie działa, ale nie chce żeby wchodziło mi to w jakieś stany o których nie będę widział 

1. Powinno działać tak, że jeśli "Pole +5sC CWU" jest aktywne (3 to jest załączone) a "Wyj 10 Podłogówka Opóźnienie" jest wyłączone to wyjście "Satel Wyjście 75 IDX Test CWU" ma się załączyć. W każdej innej konfiguracji wyjście Satel Wyjście 75 IDX Test CWU" ma zostać wyłączone. 

CWU

2. Jeśli to pierwsze jest dobrze to chce je rozbudować o opóźnienie na wypadek gdyby wyjścia zbyt szybko zmieniały stany tak a żeby wyjście 75 mi nie "klipało". Pytanie czy to na dole z opóźnieniem ma szanse zadziałać, bo nie mam chwilowo jak tego sprawdzić. 

CWU 2

3. Potrzebuje podpowiedzi jak ułożyć klocki a żeby wyjście Y załączyło się jeśli przynajmniej 3 wyjścia (obojętnie które, lub więcej) z 5-ciu X1, X2, X3, X4, X5 były aktywne. Chce zrobić tak a żeby Pompa Ciepła uruchamiała się  dopiero jak w trzech pokojach termostaty wskażą za niska temperaturę.

Uruchamianie pompy Ciepła dla jednego pokoju tak jak mam teraz jest bezsensowne i nieekonomiczne

Idealnie było by gdyby załączania i wyłączania wyjścia Y  miały kilkudziesięciosekundowe opóźnienia na wypadek "klipanie" 

Z góry dziękuje za pomoc

 

 

OdpowiedzCytuj
Autor tematu Dodane : 13/03/2021 8:09 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@adamdudek pierwszy skrypt będzie działał tylko nie wiem po co go tak rozbudowałeś , jest identyczny jak ten z głowicą Kuby i wystarczy tylko zrobić że jeżeli  "pole"  lub wyj 10 będzie w stanie nie zgodnym z pierwszym warunkiem to wyłącz satel 75 

Jednym słowem zamiast AND wykorzystujesz OR  .

Skrypt z opóźnieniami jest problematyczny bo w czasie tych 60 sek może wystąpić zupełnie inny warunek , który powinien się wykonać ale blockly po upływie tego czasu zrobi to co mu wyznaczył pierwszy z warunków- ten który uruchomił timer.

Tu bym znów się wspomógł zmienną której zmiana uniemożliwi konflikt

OdpowiedzCytuj
Dodane : 13/03/2021 9:58 pm
Udostępnij: