Sciemniacz do akwarium

Panowie mam zagwostkę z ograniczeniem poziomu ściemniania oświetlenia w akwarium.
W domoticz robiłem to za pomoca pętli z ustalonymi warościami np

	   if dz.time.matchesRule('at 6:49') then
		    	    licht.switchOn()
		    	    licht.dimTo(1)
		    
		    for i = 1,35 do
		        t = i * 20
				licht.dimTo(i).afterSec(t)
				
			end
			dz.log("Oświetlenie akwarium 35%")
			end
			if dz.time.matchesRule('at 9:30') then
		    	    licht.dimTo(36)
		    
		    for i = 36,50 do
		        t = i * 20
				licht.dimTo(i).afterSec(t)
				
	      	end
	   	dz.log("Oświetlenie akwarium 50%")
	        end

W NR mogę użyć noda dynamic-dimmer , ale to pójście na łątwiznę i niczego się nie nauczę, skleciłem taki przykładowy przepływ , który działa , ale
Nie umiem ograniczyć poziomu i jak źle obliczę czas i częśtotliwość wyzwoleń to albo uzyskam na końcu NaN , albo wartosci z poza zakresy , powyżej 255 . Jak to ogarnąć ?
flows1.json (4,0 KB)

Zmieniając warunki w funkcjach możesz ograniczyć zadawane wartości.
Teraz jest pełen zakres 0-255

var poziom = msg.data.attributes.brightness;
if (poziom <= 250) {
    poziom = poziom + 5;
  }
else {
     poziom = 255;
     flow.set('UpDown', 'Stop');
  } 
msg.payload =
{
    "data":
    {
        "brightness":poziom,
    }
}
return msg;
var poziom = msg.data.attributes.brightness;
if (poziom >= 5) {
    poziom = poziom - 5;
}
else {
    poziom = 0;
    flow.set('UpDown', 'Stop');
}
msg.payload =
{
    "data":
    {
        "brightness": poziom,
    }
}
return msg;

edit…
Dodatkowo możesz dodać pseudo zegarek przełączający zmiany oświetlenia o określonych godz. - tak jak w dzventz.
UpDown
flows (41).json (1,5 KB)

1 Like

Dzięki Kolego @RobinI30 tego mi było trzeba :slight_smile: