Tasmota - reguła do...
 
Powiadomienia
Wyczyść wszystko

UWAGAStrona 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

Kontakt

Tasmota Tasmota - reguła do wyłączania pompy cyrkulacyjnej

20 Wpisów
3 Użytkownicy
0 Reactions
1,830 Wyświetleń
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

Witajcie w pierwszym moim poście:)

Taki plan jest - Domoticz zbiera informacje z czujek satela. Na bazie naruszenia trzech strategicznych czujek domoticz włącza pompę cyrkulacyjną na dwie minuty (oczywiście pompa jest podłączona pod przełącznik z zainstalowaną Tasmotą:).

Chciałbym jednak aby uruchomiona raz pompa na dwie minuty, nie reagowała na kolejne naruszenia z czujek przez n-czas, no bo przecież nie ma potrzeby ciągłego uruchamiania pompy jeśli już przetoczyła wodę a my znajdujemy się ciągle w obszarze naruszania czujek. Macie jakiś pomysł

 
Dodane : 10/04/2022 6:01 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Może w skrypcie który uruchamia pompę użyj zmiennej zapisywaną w Domoticzu. I teraz jak już pompa się uruchomi zwiększ czas w tej zmiennej o ile cię interesuje. Potem dopiero po spełnieniu tego warunku pozwól czujką uruchomić pompę.

Możesz też tu dać skrypt który używasz do uruchomienia pompy to może go zmodyfikuje.

 
Dodane : 10/04/2022 6:56 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat 

Oj chyba moja wiedza nie jest jeszcze tak duża:) W następnym poście wrzucę skrypt. Sam skrypt uruchamia tylko pompe, tasmota ma PulsTime 160 który wyłącza pompę. 

 
Dodane : 10/04/2022 7:06 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 
image
 
Dodane : 10/04/2022 7:06 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Dobrze by to było przepisać na dzvents. Jak będę miał chwilę to spróbuję 

Podaj jeszcze idx tych czujek i pompy w Domoticzu.

 
Dodane : 10/04/2022 7:27 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat Extra, dziękuję. Muszę zerknąć w inne możliwości poza blocky. Jeszcze chodzi za mną program do grzałki CWU, który uwzględni naszą rutynę oraz produkcję PV.

 
Dodane : 10/04/2022 7:55 pm
isom
 isom
(@isom)
Wpisów: 5190
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@karciu a czemu nie dołożysz czujnika temp na rurę od tej cyrkulacji ? Całe sterowanie można przenieść do tasmoty a w domoticz zrobić załączenie cyrkulacji na podstawie tych czujników , obecności telefonów domowników lub to co podpowie fantazja , pilot, przycisk na ścianie .

Zobacz sobie ten film może coś z niego zaadoptujesz https://youtu.be/o4GCdNIxGTk

 
Dodane : 10/04/2022 9:14 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

@karciu Ja zrobisz tak będzie.

Tu masz skrypt

return 
{
    on = 
    { 
       	devices = {
			1,2,3,4
		 },
		--timer = { 'every 5 minutes'},
	system = {
            'start',
        },
    },

   -- logging = { level = domoticz.LOG_DEBUG, marker = 'post data' },

    execute = function(dz, devices)
           local Time = require('Time')
	   local now = Time(dz.variables('czas_zalaczenia').value)
           if (devices.active and dz.time.compare(now).compare == -1) then
		dz.devices(10).switchOn().checkFirst().forMin(2)
		now = dz.time.addMinutes(15)
		dz.variables('czas_zalaczenia').set(now.rawDateTime)
            end
    end
}

za 1,2,3,4 wstaw IDX czujek z Domoticza

za 10 IDX Włącznika od pompy z Domoticza.

forMin(2) - tu możesz zwiększyć czas pracy pompy

addMinutes(15) - czas do odblokowania pompy

utwórz zmienną typu ciąg znaków w domoticzu o nazwie "czas_zalaczenia" i ustaw jej wartość na np:. "2022-04-10 22:27:43"

 
Dodane : 10/04/2022 9:34 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat dziękuję, nie załącza IDX 382

return 
{
    on = 
    { 
        devices = {
161,158,160,166
},
--timer = { 'every 5 minutes'},
system = {
            'start',
        },
    },
 
   -- logging = { level = domoticz.LOG_DEBUG, marker = 'post data' },
 
    execute = function(dz, devices)
           local Time = require('Time')
  local now = Time(dz.variables('czas_zalaczenia').value)
           if (devices.active and dz.time.compare(now).compare == -1) then
dz.devices(382).switchOn().checkFirst().forMin(2)
now = dz.time.addMinutes(15)
dz.variables('czas_zalaczenia').set(now.rawDateTime)
            end
    end
}
image
 
Dodane : 10/04/2022 10:00 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Zobacz czy już nie był załączony. Wartość zmiennej "czas_zalaczenia" może być ustawiona już powyżej czasu aktualnego. Testowałem ten skrypt i u mnie załączał przekaźnik. Rozumiem że masz w domoticzu przełącznik on/off na tym idx? A ta czujka ma jakie wartości jak jest alarm?

 
Dodane : 10/04/2022 10:06 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat Co masz na myśli "Zobacz czy już nie był załaczony" ? Tak IDX 382 to pzekaźnik po MQTT

 
Dodane : 10/04/2022 10:17 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

@karciu Myślę że tu chodzi o wartości czujek PIR. Niestety ja nie mam jak tego sprawdzić. A coś takiego?

return 
{
    on = 
    { 
       	devices = {
			1,2,3,4
		 },
		--timer = { 'every 5 minutes'},
	system = {
            'start',
        },
    },

   -- logging = { level = domoticz.LOG_DEBUG, marker = 'post data' },

    execute = function(dz, devices)
       local Time = require('Time')
	   local now = Time(dz.variables('czas_zalaczenia').value)
       if (devices.text != "1" and dz.time.compare(now).compare == -1) then
		   dz.devices(10).switchOn().checkFirst().forMin(2)
		    now = dz.time.addMinutes(15)
		    dz.variables('czas_zalaczenia').set(now.rawDateTime)
       end
    end
}
 
Dodane : 10/04/2022 10:23 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat czujka uruchomiła pompę

image
 
Dodane : 10/04/2022 10:27 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

No i teraz powinna być blokada na 15 minut

 
Dodane : 10/04/2022 10:31 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat wygląda na to że jest:) a gdyby jeszcze do tego wprowadzić zmienną w postaci - włącz tylko między godziną a godziną ? Przecież nie ma potrzeby włączać cyrkulacji podczas nocnego sikania 🙂

 
Dodane : 10/04/2022 10:36 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

Pewnie i nie ma sensu ale czy zawsze? I tu jest diabeł pochowany. Wszystko zależy od tego co jednak potrzebujemy. Bo np.: może jednak będzie potrzeba się wykąpać np. o 12 w nocy? Mogę np dodać warunek o wschodzie i zachodzie słońca ale wtedy jest za wcześnie na blokadę.

Może np blokować od północy do np 5 rano?

 
Dodane : 10/04/2022 10:48 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat Mam pomysł - jeśli alarm jest zakodowany wtedy nie uruchamiaj

 
Dodane : 10/04/2022 10:55 pm
(@steel_rat)
Wpisów: 603
Ekspert
 

To zmień to

if (devices.text != "1" and dz.time.compare(now).compare == -1)

na

if (devices.text != "1" and dz.time.compare(now).compare == -1 and devices(<IDX_gdzie_jest_status_alarmu).text == "normal")
 
Dodane : 10/04/2022 11:17 pm
(@karciu)
Wpisów: 19
Praktykant
Autor tematu
 

@steel_rat 

Patrzę w logi tasmoty i widzę, że po implementacji Twojego skryptu, Power2 zamiast na 3 minuty (tak zmieniłem), włącza się wyłącznie na krótki pik, a często jednak pracuje tak jak powinien (3 minuty). Jakiś pomysł ?

 

image
 
Dodane : 14/04/2022 2:20 pm
(@steel_rat)
Wpisów: 603
Ekspert
 
dz.devices(10).switchOn().checkFirst().forMin(3)

To włącza pompę na 3 minuty, wcześniej sprawdzając jej stan. Może zmień na

dz.devices(10).switchOn().forMin(2)
 
Dodane : 14/04/2022 6:36 pm
Udostępnij: