Forum Smart'ny Dom

Notifications

Blocky-jak to poukładać?  

  RSS
Rafal_Sz
(@rafal_sz)
Młodzik

Witam,

Potrzebuję Waszej pomocy. Mam urządzenie Inode(pomiar energii) podpięte do domoticza i chciałbym ułożyć warunek, że jeśli wartość będzie wyższa niż np.2000W przez 30minut (próbkowanie z urządzenia jest wysylane do domoticza co 10minut) to zostanie wysłany e-mail z ta informacją.Z góry dziękuję za to pewnie trywialne rozwiązanie, które mnie przerasta.

Cytuj
Dodane : 25/11/2019 9:56 pm
Tagi tematu
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@rafal_sz trzeba utworzyć sobie dodatkowego pomocnika w postaci zmiennej użytkownika  nazwanej dowolnie a typ liczba całkowita.

I sobie robisz

IF Inode > 2000 and zmienna ( nie równa się 1)

SET zmienna = 1 po 30 min

ELSEIF Inode> 2000 and zmienna = 1

SET e-mail send

SET zmienna = 0

Musisz tylko wiedzieć że zawsze dostaniesz powiadomienie gdy wartość mocy będzie przekraczać 2000W . 

OdpowiedzCytuj
Dodane : 26/11/2019 10:09 am
Rafal_Sz
(@rafal_sz)
Młodzik

@isom

Czy powinno to wyglądać tak (załącznik)? Bo niezależnie jaki czas wpiszę to dostaję co kilka sekund maila po przekroczeniu wartości 2000.

 
OdpowiedzCytuj
Dodane : 26/11/2019 10:05 pm
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

Ten ostatni set ma być doklejony do send email i na start ustaw ustaw zmienną 0 

OdpowiedzCytuj
Dodane : 26/11/2019 10:19 pm
Rafal_Sz
(@rafal_sz)
Młodzik

@isom

Pomimo zmiany, coś nie działa. Nie mam wysyłanych e-mail-i. Chyba zmiana zmiennej nie reaguje pomimo spełnionych warunków (Inode>limitu i czas)?

Czy wartość zmiennej powinna się zmieniać w tym widoku dynamicznie (załącznik), czy może być jakieś opóźnienie w pokazywaniu aktualnego stanu?

OdpowiedzCytuj
Dodane : 28/11/2019 6:33 am
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@rafal_sz zmienna ma obowiązek zmienić się w tym widoku po ustawionym czasie i aktualizacji odczytu z tego iNode , pod warunkiem że pobór jest > 2000W . Nie wiem czy wziąłeś pod uwagę czas aktualizacji tego iNode , ale po południu wstawię przykład blockly , który załącza alarm jak pobór jest za duży 

OdpowiedzCytuj
Dodane : 28/11/2019 1:02 pm
Rafal_Sz
(@rafal_sz)
Młodzik

@isom

Czyli zmienna sprawdza wartość "poboru energii" w momencie przesłania z Inode-a czy tez w sposób ciągły porównując się do ostatniej wartości w czasie rzeczywistym jak jest "wyświetlana" w domoticzu? 

Dodam tylko że Inode przesyła wyniki do domoticza (update) co 10 minut.

OdpowiedzCytuj
Dodane : 28/11/2019 1:25 pm
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@rafal_sz W skryptach blockly wyzwalaczem może być czas , albo urządzenie aktualizujące swój stan czyli wszelkiego rodzaju czujniki , mierniki , przełączniki itp , zmienne są tylko pomocnikami w ustalaniu logiki , a aktualizują się na podstawie wyzwalaczy w Twoim przypadku na podstawie wysyłanych danych przez iNode . Biorąc pod uwagę powyższe zmiana wartości zmiennej może nastąpić dopiero kiedy Twój wyzwalacz zaktualizuje stan, minie ustawiony przez Ciebie czas i wartość wskazywana przez iNode przekroczy, lub będzie 2000W.  Najprościej mówiąc zmienna ustawi sie na 1 po 11 minutach jak zostaną spełnione wszystkie warunki. i po takim czasie zostanie wysłany mail. Wyjątek może być przy pierwszym odpaleniu skryptu , bo nie wiadomo ile czasu zostało do zaktualizowania się iNode od kliknięcia "zapisz"

Poniżej przykład , który sprawdziłem u siebie i działa na 100%

OdpowiedzCytuj
Dodane : 28/11/2019 6:02 pm
Rafal_Sz
(@rafal_sz)
Młodzik

@isom

No to wszystko jasne, zaczęło działać. Wklejałem nie ten rodzaj "puzzli" dla pola wartości.

Dzięki!

A czy da radę ustawić, żeby dopiero np. po piątym odczycie z inode-a powyżej limitu była wysyłana informacja?

OdpowiedzCytuj
Dodane : 28/11/2019 10:12 pm
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@rafal_sz jak w pierwszym ELSEIF zamiast send mail wstawisz set zmienna = 2 after 5 sek a w trzecim ELSEIF wstawisz send mail to dostaniesz powiadomienie dopiero po drugim odczycie . Jak to rozbudujesz to możesz zrobić że dopiero po którymś odczycie wyśle maila 

OdpowiedzCytuj
Dodane : 29/11/2019 9:51 am
Udostępnij:



Udostępnij
  • 1
    Share