Asystent AI
Powiadomienia
Wyczyść wszystko

Dzvents- losowe właczanie koloru kilku żarówek RGBW zigbee

5 Wpisów
2 Użytkownicy
0 Reactions
1,325 Wyświetleń
(@mareka)
Wpisów: 19
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#2078]

Ma ktoś pomysł jako zrobic losowe włączanie koloru dla kilku żarówek RGBW, tak aby każda miała "wylosowany" własny kolor?

Mam taki skrypt, ale druga , trzecia (i kolejne jeśli są w skrypcie) zawsze mają taki sam kolor- czyli random w taki sposób nie uruchamia sie na nowo

 

return {
on = { timer = { 'at every minute'}},
logging =
{
level = domoticz.LOG_DEBUG,
},
execute = function(dz)
Zarowa1 = dz.devices(454)
Zarowa2 = dz.devices(456)
Zarowa3 = dz.devices(458)
Zarowa1.setColor(math.random(0, 255),math.random(0, 255),math.random(0, 255))
Zarowa2.setColor(math.random(0, 255),math.random(0, 255),math.random(0, 255))
Zarowa3.setColor(math.random(0, 255),math.random(0, 255),math.random(0, 255))

end

}


 
Dodane : 16/12/2020 2:06 pm
(@bartolomeo)
Wpisów: 210
Pomocny Donator 2K22
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Też się przekonałem, że czasem trzeba się nakombinować przy tych skryptach, aby coś zadziałało... Nie mam żadnych tego typu żarówek, więc nie potestuję, ale wrzuciłem sobie taki kod na warsztat:

 
dz.log (math.random(0, 255))
dz.log (math.random(0, 255))
dz.log (math.random(0, 255))
dz.log (math.random(0, 255) .. ' oraz' .. (math.random(0, 255)))

i w każdym wierszu wskazało mi inną losową wartość, więc niby losuje dobrze:


2020-12-16 16:05:00.503 Status: dzVents: Info: 251
2020-12-16 16:05:00.503 Status: dzVents: Info: 236
2020-12-16 16:05:00.503 Status: dzVents: Info: 37
2020-12-16 16:05:00.503 Status: dzVents: Info: 38 oraz131

 
 
Na twoim miejscu sprawdziłbym czy typy zmiennych nie kolidują gdzieś i przerobił na początek math.random(0, 255) na: 
 
tostring(math.random(0, 255))
 

 
Dodane : 16/12/2020 5:12 pm
(@mareka)
Wpisów: 19
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Niestety tostring() nie działa tu musi byc wartość numeryczna.

Ale zasugerowałeś mi z tymi zmiennymi - zrobiłem to inaczej i działa. Dzięki 🙂

Niezbyt to eleganckie, ale spełnia swoją rolę

return {
on = { timer = { 'at every minute'}},
logging =
{
level = domoticz.LOG_DEBUG,
},
execute = function(dz)
Wlacz =dz.devices(465)
Zarowa1 = dz.devices(454)
Zarowa2 = dz.devices(456)
Zarowa3 = dz.devices(458)
Zarowa4 = dz.devices(460)
Zarowa5 = dz.devices(462)
Zarowa6 = dz.devices(464)
if
Wlacz.state == 'On' then
br=math.random(10, 80)
Zarowa1.setLevel(br)
Zarowa2.setLevel(br)
Zarowa3.setLevel(br)
Zarowa4.setLevel(br)
Zarowa5.setLevel(br)
Zarowa6.setLevel(br)
r1=math.random(0, 255)
r2=math.random(0, 255)
r3=math.random(0, 255)
r4=math.random(0, 255)
r5=math.random(0, 255)
r6=math.random(0, 255)
g1=math.random(0, 255)
g2=math.random(0, 255)
g3=math.random(0, 255)
g4=math.random(0, 255)
g5=math.random(0, 255)
g6=math.random(0, 255)
b1=math.random(0, 255)
b2=math.random(0, 255)
b3=math.random(0, 255)
b4=math.random(0, 255)
b5=math.random(0, 255)
b6=math.random(0, 255)

Zarowa1.setColor(r1,g1,b1)

Zarowa2.setColor(r2,g2,b2)

Zarowa3.setColor(r3,g3,b3)

Zarowa4.setColor(r4,g4,b4)

Zarowa5.setColor(r5,g5,b5)

Zarowa6.setColor(r6,g6,b6)

else
Zarowa1.switchOff()
Zarowa2.switchOff()
Zarowa3.switchOff()
Zarowa4.switchOff()
Zarowa5.switchOff()
Zarowa6.switchOff()
end
end

}


 
Dodane : 16/12/2020 9:14 pm
(@bartolomeo)
Wpisów: 210
Pomocny Donator 2K22
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Fajnie. W teorii zrobiłeś to samo co na początku, a jednak wczesniej nie działało 😉. Trochę tak jakby skrypt nie był w stanie przyporządkować więcej niż jednej losowej wartości w trakcie wykonywania komendy setcolor. Za to z trzema z góry zdefiniowanymi sobie radzi.

Z ciekawości... do czego wykorzystujesz te 6 różnokolorowych żarówek? 🤔


 
Dodane : 16/12/2020 10:13 pm
(@mareka)
Wpisów: 19
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Chciałem też opóźnić tę zmian koloru, ale afterSec() , przynajmniej na razie mi nie działa

Żarówki wymienię w podbitce dachu,  będzie odpustowo na święta 🤣 


 
Dodane : 16/12/2020 10:45 pm
Udostępnij: