Powiadomienia
Wyczyść wszystko

Blockly, dzVents, python, pomoc w napisaniu scryptu

6 Wpisów
2 Użytkownicy
0 Reactions
2,970 Wyświetleń
(@kamaz8)
Wpisów: 5
Bywalec
Autor tematu
 

Witam. Jeśli temat w złym miejscu to proszę o przeniesienie w odpowiednie miejsce

Jestem początkujący który dopiero zaczyna bawić się Domoticzem, zainstalowałem i uruchomiłem go na malince 3b+, dodałem kilka esp8266 z czujnikami temperatury, działa z czego się niezmiernie cieszę 🙂

Idąc krok dalej chciał bym aby jedno esp8266 + 18b20 załączało mi drugie esp8266 + 18b20 ale poprzez skrypt, wyjaśnię dlaczego 

W garażu obok domu mam piec którym ogrzewam dom i zbiornik z C.W.U. niestety nie mam pomiędzy piecem a zbiornikiem C.W.U. kabla wiec została mi komunikacja bezprzewodowa. Potrzebuje porównać temperaturę na piecu i w zbiorniku C.W.U. i na podstawie logiki załączyć zawór w zbiorniku C.W.U

Zrobiłem kiedyś na arduino sterownik który działał bez problemu, niestety w tym układzie bez kabla pomiędzy piecem a zbiornikiem nie będzie działać z wiadomych powodów. Próbowałem ułożyć w Blockly logikę ale nie znalazłem funkcji dodawania do zmiennej wartości, poniżej załączam to co potrzebuje przystosować do Domoticza z góry dziękuję 

      if       ((PIEC-3 )> CWU)
licznik = licznik+1;
delay(3000);
     if       (licznik > 20)
licznik = 20;
     if      ((PIEC-3) < CWU)
licznik = licznik-1;
delay(3000);
     if    (licznik < 10)
licznik = 10;
    if    (licznik >= 20)
digitalWrite(5,HIGH);
    if    (licznik <= 12)
digitalWrite(5, LOW);

 
Dodane : 26/08/2019 3:14 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@kamaz8 a możesz opisać własnymi słowami tą logikę może zmienne wcale nie są potrzebne 

 
Dodane : 26/08/2019 9:16 pm
(@kamaz8)
Wpisów: 5
Bywalec
Autor tematu
 

@isom

dziękuję za zainteresowanie, generalnie logika nie jest jakoś bardzo skomplikowana,

 Jeśli temperatura na piecu jest większa od temperatury w zbiorniku cwu to do zmiennej licznik dodaj 1

jeśli tych jedynek uzbiera się odpowiednia ilość to otwórz zawór w zbiorniku cwu i nagrzej wodę. 

Opóźnienia czasowe i licznik dodałem ze względu aby zawór nie otwierał się co chwile i zawsze w zbiorniku cwu była najwyższa temperatura 

nie wiem jak to zapisać w Domoticzu, co musi być wpisane w skrypcie, wszedłem w Google i znalazłem edytor blockly w którym jest opcja dodawania 

 
Dodane : 27/08/2019 6:05 am
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@kamaz8 na początek możesz spróbować z jedną zmienną , którą trzeba sobie utworzyć  jako liczba całkowita np tak https://prntscr.com/oxz0xx

A potem budujesz z klocków taki blok 

https://prntscr.com/oxyzf2

jak zmiana 0- 3 to dla Ciebie za krótki czas to możesz to rozbudować o kolejne wartości zmiennej

Wersja 2 z opóźnieniem załączenia zaworu w tym wypadku minuta 

https://prntscr.com/oxzanv

 
Dodane : 27/08/2019 7:06 am
(@kamaz8)
Wpisów: 5
Bywalec
Autor tematu
 

@isom

ok wielkie dzięki, a dało rade by to napisać w lua albo dzVents ? czy nie drążyć tematu bo lepiej będzie to działać w Blockly ?

 

 
Dodane : 27/08/2019 7:50 am
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@kamaz8 tak prosta logika będzie działać identycznie w lua czy blockly , różnica jest taka że jako początkujący z blockly i modyfikacją klocków poradzisz sobie bez problemu , a przy lua czy dzVents czyli zmodyfikowanym lua już będzie trudniej.

Ja cały czas proste zależności mam w blockly , raz że domoticz ciągle się rozwija i wersje dzVents razem z nim i może się zdarzyć że to co wczoraj działało dziś przestało i trzeba wiedzieć dlaczego, dwa to zapętlony skrypt dzVents z błędem może zawiesić serwer, blockly się po prostu nie wykona jeżeli logika będzie błędna.

 
Dodane : 27/08/2019 8:39 am
Udostępnij: