Zacząłem od blockly, ale już na początku mam schody - błąd w logach
EventSystem: Lua script error (Blockly), Name: obieg-test_1 => [string "result = 0; weekday = os.date('*t')['wday']; ..."]:1: 'then' expected near 'comparevariable'
i nie bardzo wiem o co chodzi ... (błąd z definicją czasu ?).
Jest to jeden obieg, uruchamiany przełącznikami sonoff touch (lazienka0 - 30s, lazienka1 - 60s), które włączają pompę (Gn CWU - gniazdo w listwie smart).
Przełączniki i listwa na Tasmocie, komunikacja wifi - mqtt.
Warunki dla skryptu (blockly, lua, dzvents):
- czas działania 5 - 23 godz. (nie wiem jak to ogarnąć w blockly, jak zablokować uruchamianie pompy w nocy - urządzenie uruchomia urządzenie),
- włączenie nie częściej niż co 15 min. lub zależność od temperatury (pomiar temp. obiegu przed zasobnikiem),
z góry dziękuję za pomoc 🙂
Poszukaj na forum, temat był opisywany i jest kilka różnych gotowych skryptów. Ja używałem poniższego
https://www.smartnydom.pl/forum/domoticz/cyrkulacja-dzvents-z-serii-ktotkie-scripty/#post-23757
Wymaga dodania wirtualnego "selectora" gdzie ustawiasz tryb pracy (wymuszona, stop, auto) i wirtualnego termostatu (gdzie ustawiasz jaka ma być temperatura w określonych godzinach i kiedy ma chodzić a kiedy nie).
@jusik wszystko to można ustawić w samej Tasmocie, polecam filmy na moim kanale, można pójść drogą, którą pokazał @mariusz-2
albo próbować prawidłowo poskładać bloczki, masz tu przykład rozbudowany o zakres czasowy
@mariusz-2, @isom dziękuję za pomoc.
Uruchomiłem skrypt cyrkulacji i wydaje się że działa. Nie mam podłączonego czujnika temp. cyrkulacji, posiłkuję się innym czujnikiem temp., ale tryby działają.
Pociągnąłem też dalej blockly, ale nie działa mi drugi warunek...
czasy są tylko do testów,
jakieś pomysły ? 🙂
@jusik pomysł a raczej rozwiązanie jest jedno, w pierwszym IF ustawiasz zmienną licznik na ciąg znaków i tym znakiem jest 1 , a w drugim warunku sprawdzasz czy ta zmienna ma wartość liczbową = 1 , nigdy jej nie będzie miała i dlatego druga część nie działa.
Zmień ustaw zmienną na 1 tak samo jak masz sprawdz zmienną , bez tych ciapek , zwykły zapis liczbowy
Niestety działa tylko pierwszy if, drugi ma wyłączyć pompę - Gn CWU na dłuższy czas, ale nie działa...
Za "wysokie progi na moje nogi"... 😊
edit
jeśli są ciapki w logach jest zmiana zmiennej, bez nich nie ma nic w logu.
@jusik co do zmiennej to musiałeś ją źle dodać, zobacz sobie skrypt i logi
Podkreśliłem zmany zmiennej "lipa"
a tu jak została dodana
Co Twojego układu, to nie ma on sensu, bo w pierwszym IF wyłączasz Gn CWU po 5 sekundach, w drugim IF sprawdzasz czy jest OFF i jeśli jest OFF to chcesz go ustawić na OFF. Przecież już jest OFF 🙂 To co ma się stać ?
Niestety działa tylko pierwszy if, drugi ma wyłączyć pompę - Gn CWU na dłuższy czas, ale nie działa...
Po 1 if pompa ma się nie włączać przez 15 min. - taki jest zamysł.
Tak masz rację - zmienna miała wartość 1, ale poprawiłem to i nadal przy 1 if niema nic o zmianie zmiennej.
Trigger'em jest device.
Po 1 if pompa ma się nie włączać przez 15 min. - taki jest zamysł.
Jak jest taki zamysł i dodatkowym warunkiem jest czas i temperatura tej wody, to nic nie stoi na przeszkodzie, żeby to zrobić blokując załączenie pompy wartością zmiennej licznik.
Na początek sprawdzamy czy temp wody jest ok i czy czas pozwala załączyć pompę, można to zrobić na kilka sposobów, np dodajemy sobie przełącznik wyboru Ciepła / Zimna i ustawiamy go w zależności od temp i czasu.
Pozwoli to uniknąć sprawdzania tych warunków w każdym następnym IF , jak już czas i termometr zmienia nam stan tego przełącznika, zostaje w drugim IF użyć tego przełącznika ( u mnie "Woda").
Sprawdzamy czy oświetlenie jest ON , czy pompa jest OFF, czy woda jest Ciepła i czy zmienna ma wartość =0
Jeśli te warunki są spełnione, włączamy pompę na ustawiony czas, zmieniamy stan zmiennej i ustawiamy jej czas blokady.
Kolejne załączenie pompy będzie możliwe gdy zmienna osiągnie wartość = 0
To chyba tyle, poniżej zrzut jak może to wyglądać
Woda, to przełącznik wyboru z dwoma poziomami
Zmienna dodana jako liczba całkowita z początkową wartością 0
Mam Domoticz 2022.1
Doszedłem do tego że zmienna "SET- VAR = 1 after 1 seconds" nie działa, zmienna się nie zmienia... 😆 ,
czyli 2 ostatnie polecenia nie działają.
Jeśli użyję "SET - VAR = 1" to jest ok.
A jak użyć "SET - VAR = 0" ze zmianą po czasie ?
ps. jak tak dalej pójdzie to będzie wpis : "Jak pożegnałem Domoticza" 😜
Doszedłem do tego że zmienna "SET- VAR = 1 after 1 seconds" nie działa, zmienna się nie zmienia... 😆 ,
czyli 2 ostatnie polecenia nie działają.
Jeśli użyję "SET - VAR = 1" to jest ok.
Różnica między tymi poleceniami jest tylko taka, że w pierwszym przypadku zmiana ma nastąpić sekundę później niż w wersji drugiej.
Jest to zalecane z różnych względów, o których tu nie będę pisał. Natomiast wiem, że wersja Domoticz nie ma tu nic do rzeczy, ponieważ takie zależności robiłem kilka lat temu, kiedy wersje były dużo starsze niż 2022.1
Na forum są przykłady np Przycisk wielofunkcyjny i tam stosowałem takie ustawienia zmiennych. Dlaczego to u Ciebie nie działa nie mam pojęcia, bo nie mam szklanej kuli, żeby podejrzeć. Ostaniego zdania nie będę komentował, bo skoro zniechęcają Cię takie drobne niepowodzenia, to widocznie automatyka i smart dom nie są dla Ciebie. Domoticz i blockly to chyba najprostsza metoda tworzenia automatyzacji, w innych platformach może być tylko trudniej.
Może zacznij od prostej zmiany zmiennej po zmianie stanu dowolnego przełącznika i jak to się uda z ustawieniem opóźniena zmiany tej zmiennej to dokładaj kolejne warunki.
No nic, jak się pisze program po wyglądzie , a nie po funkcjach... na zrzutach tego nie widać... eh szkoda gadać... 😊 nawet w logach jest co powinno...
Wielkie dzięki za pomoc 👍 🍺 🍺
linuxa używam jak jeszcze internet był po modemach, po telefonie... a klocki by mnie mało nie położyły... 😀
jak to mówią uczysz się całe życie... itd...
Ten wpis powinien być podpięty jako sztandarowy przykład dla poczatkujących w blockly.
Zmienne użytkownika w domoticzu nie działają. Coś tam brakuje.
Dziwne, bo mi działają:
2023-09-08 21:21:18.395 Status: Set UserVariable licznik = 12023-09-08 21:35:19.377 Status: Set UserVariable licznik = 0
i chodzi dokładnie o przypadek w którego temacie piszesz.
W poście nad twoim napisałem takie zdanie:
No nic, jak się pisze program po wyglądzie , a nie po funkcjach... na zrzutach tego nie widać... eh szkoda gadać... 😊 nawet w logach jest co powinno...
Ten wpis powinien być podpięty jako sztandarowy przykład dla poczatkujących w blockly.
Przeczytaj temat jeszcze raz i zwróć uwagę ile informacji przekazałem w postach, a potem rozwiń swoje "złote myśli"...
W tym o czujnikach i rs485 też...
W tym o czujnikach i rs485 też...
Może o tych czujnikach, to nie w tym wątku, bo się zrobi bałagan, natomiast co do zmiennych zawsze działały i nadal działają. Nie wiem skąd kolego @josifkami masz takie informacje ? Chyba , że z własnych niepowodzeń w ich wykorzystywaniu.
Bloczki są super i działają. Wymagają tylko podejścia. Zmienne użytkownika nie działają, nie przekazują swojej wartości do zmiennych domoticza. Ktoś nazwał je zmiennymi pomocniczymi. Potwierdzone na elektrodzie i youtube. Co mam udostępnić domoticza aby to zaprezentować?
Co mam udostępnić domoticza aby to zaprezentować?
Wystarczy krótki opis, najlepiej z wyjaśnieniem co to są zmienne domoticza. Zmienne użytkownika można nazwać pomocniczymi, bo można z nich korzystać żeby uprościć sobie życie, np aktualizując zmienną "Pora dnia" w jednym skrypcie na podstawie aktualnego czasu, można taką zmienną wykorzystać w wielu innych skryptach, do aktywowania zdarzeń. O zmiennych domoticza nie słyszałem i chętnie się dowiem co to. Zmienne użytkownika ( UserVariables), tworzymy w samym domoticz i ich wartości są zapisywane w bazie danych, a jak to wygląda z tymi zmiennymi domoticza, o których nie słyszałem ?