UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
@abulec W Shelly 1 między I O są tylko styki przekaźnika. Korzystałem i korzystam z tych modułów przy przeróbkach unifonów domofonowych ( zdalne otwieranie ) , kilka sterowników bram garażowych też na tym działa . Nie polecał bym koledze @maniek_ gdybym nie był pewny 🙂
W tym temacie https://www.smartnydom.pl/forum/shelly/wlacznik-wifi-shelly-1/ znajdziesz fotki ścieżek z obu stron , te od styków są zaznaczone na pomarańczowo
Rozumiem. Mam pierwszą wersje shelly 1, a wiem że kolejne miały lepiej rozwiązaną separację obwodów, dlatego wolałem dopytać.
@abulec chcesz ostatnią wersję z wgraną aktualizacją softu i sprawdzoną na 100% to dla użytkowników forum mam po 45 zł + kw.
Powoli szukam rozwiązania dla siebie i natknąłem się na ten wątek. Jednak do końca nie wiem jak rozwiązać to u siebie
Z tego co tutaj widzę skrypt steruje jednym przekaźnikiem na podstawie wskazań dwóch termometrów.
W moim przypadku w każdym pomieszczeniu mam termometr i każde pomieszczenie jest sterowane oddzielną pętlą. Ogólnie około 12 par termometr-zawór. Chciałbym sterować globalnie dla wszystkich pomieszczeń tak jak jest to zastosowane w tym skrypcie jednak zbierać dane z 12 termometrów i sterować 12 zaworami + włączaniem/wyłączaniem pieca na pelet. Czy muszę ten skrypt duplikować dla każdego pomieszczenia czy da się to jakoś inaczej rozwiązać?
@qedro generalnie skrypt wykorzystuje jeden termometr , drugi jest tylko na wypadek awarii pierwszego , żeby niezależnie sterować każdą pętlą trzeba powielać skrypt zmieniając w każdym nazwę przekaźnika i termometru , można minimalizować ilość skryptów dobierając pomieszczenia o podobnych wymogach temperaturowych i łączyć je w grupy , tak jak opisałem to wcześniej. Można też i tak mam u siebie tyle że grzejniki a nie podłoga pobierając temperaturę z kilku pomieszczeń użyć skryptu do wyliczenia średniej i na podstawie tej średniej sterować kotłem na pellet. Ile instalacji grzewczych tyle pomysłów.
Ok czyli wszystko jasne. Mam już pewien zarys. Powtórzyć termostaty a potem to pogrupować i sterować globalnie grupami . Przy użyciu dzvents ładnie można to ogarnac jak wcześniej pisałeś.
@abulec chcesz ostatnią wersję z wgraną aktualizacją softu i sprawdzoną na 100% to dla użytkowników forum mam po 45 zł + kw.
Póki co pobawię się tym co mam. Dzięki.
Witam wszystkich.
Na wstępie chciałem podziękować isom za skrypt termostatu.
Używam go od jakiegoś czasu i jak na razie dobrze się sprawuje. Dodałem do tego sterowania licznik pracy kotła CO ale nie za dobrze funkcjonuje ten mój licznik. Mały licznik zlicza od razu a większy z opóźnieniem po jakiś 6 minutach.
Utworzyłem dodatkowy skrypt licznika który przesyła dane do urządzenia licznika w Domoticzu.
return {
on = { timer = {'every 1 minutes'} },
execute = function(domoticz, _)
local myDevice = domoticz.devices('Reg-Pokojowy')
local aktlicznik = domoticz.devices('Czas pracy kotla CO').counter
if myDevice.state == "On" then
aktlicznik = aktlicznik + 1
domoticz.devices('Czas pracy kotla CO').updateCounter(aktlicznik)
end
end
}
Gdzieś jest jakiś błąd ale nie za bardzo wiem gdzie.
@mihu jakiej - której wersji domoticz używasz ? Wprowadziłem kosmetyczne zmiany w ustawieniu timera i dodałem trochę debugowania dla sprawdzenia i skrypt śmiga bez problemu
return { on = { timer = {'every minute'}
},
logging =
{
level = domoticz.LOG_DEBUG, -- zmien na LOG_ERROR, jak skrypt bedzie Ok
marker = 'Licznik',
}, execute = function(domoticz, _ )
local myDevice = domoticz.devices('Reg-Pokojowy')
local aktlicznik = domoticz.devices('Czas pracy CO').counter if myDevice.state == "On" then
aktlicznik = aktlicznik + 1
domoticz.devices('Czas pracy CO').updateCounter(aktlicznik)
end end
}
Poniżej fotka działającego licznika
Dziękuję za szybką odpowiedź.
Używam Domoticza 2020.2.
Po poprawkach w skrypcie wszystko działa jak powinno.
Dzięki za wskazanie błędu 😀
Mam jeszcze jedno pytanie. Gdzie wyzerować logi liczników?
@mihu możesz do tego użyć json
http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=XX&svalue=0
po zmianie portu jeżeli używasz innego niż 8080 i wstawieniu zamiast xx IDX swojego licznika , możesz to wstawić w akcji dowolnego przełącznika, któremu ustawisz harmonogram wł/wył .
Można też żeby nie tworzyć dodatkowego urządzenia wykorzystać dzVents. Poniższy skrypt wykasuje licznik o wskazanej porze w poniedziałek
-- Kasowanie licznika zmien port i zamien xx na IDX swojego licznika w domoticz return {
on = {
timer = {'at 00:01 on mon' },
},
execute = function ( domoticz, item ) if item . isTimer then
domoticz . openURL {
url = 'http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=XX&svalue=0'}
domoticz.log ('Licznik wyzerowany')
end
end
}
Działa 😀 . Dziękuję za pomoc.
Witam ponownie
Skrypt działa u mnie już dłuższy czas ale w tym roku zobaczyłem że wywala mi błędy w logu .
parę miesięcy temu robiłem upgrade do 2020.2
@wojtek_gtx to są mało znaczące błędy wynikające ze zmian wersji dzVents . Jak masz skrypt w oryginale to zamień końcówkę skryptu na to co poniżej . Oczywiście bez mojego opisu dotyczącego wiersza 412
Zmieniłem
Póki co błędów brak
Dzięki
Idąc za ciosem to w tych liniach oryginalnego kodu także robimy poprawki usuwając ",true"?
213--> log(domoticz,' > 3. SETTING MODE: [' .. text_content .. ']',true)
320--> log(domoticz,' >11. ' .. devHEAT .. ' On because the current temperature '.. tostring(temp_current)..' lower than required '..tostring(temp_set),true)
323--> log(domoticz,' > 11a. '.. devHEAT .. ' OFF because the current temperature '..tostring(temp_current)..' it is not lower than required '..tostring(temp_set),true)
358--> log(domoticz,text_content,true);
383--> log(domoticz,text_content,true);
ja zaimplementowałem obydwa skrypty , pozmieniałem co trzeba ale mam błędy
Skrypt licznika Nie masz takiego urządzenia jak Reg-Pokojowy , błąd pisowni , albo jakaś spacja .
Skrypt termostatu błąd dotyczy próby porównania indeksu z zerem czyli zła składnia skryptu, ale bez szklanej kuli , albo zobaczenia tego skryptu nic nie można powiedzieć
niby działa ale mi sie wlacza i wylacza reg-pokojowy
There is no device with that name or id: Reg-Pokojowy, wpisz to do translatora a dostaniesz takie tłumaczenie
Nie ma urządzenia o takiej nazwie lub identyfikatorze: Reg-Pokojowy
To znaczy że w samym skrypcie jest literówka , albo niepotrzebnie gdzieś zrobiona spacja