dzVents - zmiana ko...
 
Powiadomienia
Wyczyść wszystko

Pomoc dzVents - zmiana koloru kilku żarówek jednym przyciskiem

3 Wpisów
2 Użytkownicy
0 Reactions
367 Wyświetleń
(@prezes)
Wpisów: 9
Bywalec
Autor tematu
 

Witam forumowiczów,

zadanie wydaje się proste, ale skrypt mnie trochę przerósł. Moje poprzednie próby nie wypaliły. Potrzebuję skrypt w dzVents, który będzie kopiował ustawienia z wirtualnego przełącznika RGB na wybrane żarówki RGB, które są już dodane w domoticzu.

Z góry dziękuję za pomoc : )

 
Dodane : 21/06/2023 7:58 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Dodane przez: @prezes

zadanie wydaje się proste

Na pewno takie proste ? Trzeba odpytać w skrypcie o wszystkie ustawienia tego wirtualnego RGB i tworząc tabelę żarówek przesłać te paramerty do tej tabeli. Dodatkowo musi być wysyłka statusu bo nie wiemy czy żarówki są ON czy OFF, a może jedna ON a inne OFF.

Na domiar złego nie korzystam już z Domoticz i nigdy nie miałem kolorowych żarówek, ale zobacz czy to będzie działać.

return
{
    on = { devices = { 'Główny' } -- zmien nazwe na swój wirtualny przełacznik
}, 
data = {state = { initial = 0 }
},
     
    logging = { level = domoticz.LOG_ERROR },

    execute = function(dz, item)
        local slaves =   -- poniżej wpisz nazwy swoich żarówek RGB, żarówek może być dowolna ilość
        { 
            'Żarówka 1', 
            'Żarówka 2',
        }
        
            local function setColor(target, source, delay)
            local delay = delay or 0
            local source = source or item
            local switchOnURL = dz.settings['Domoticz url'] .. '/json.htm?type=command&param=switchlight&idx=' .. target.id   .. '&switchcmd=On'
            local colorURL = dz.settings['Domoticz url'] ..
                        '/json.htm?type=command&param=setcolbrightnessvalue' ..
                        '&idx=' .. target.id   .. '&brightness=' .. source.level .. '&color=' .. source.color
            dz.openURL(colorURL)
            dz.openURL(switchOnURL).afterSec(0.2)
            dz.log('Color set to ' .. source.color .. '( brightness: ' .. source.level ..')',dz.LOG_DEBUG )
        end

        if item.state ~= 'Off' and dz.data.state == 0 then
            item.switchOn().afterSec(0.3)
            dz.data.state = 1 
        elseif item.state ~= 'Off' and dz.data.state == 1 then
            for index, value in pairs(slaves) do
                setColor(dz.devices(value))
            end
            dz.data.state = 0
        elseif item.state == 'Off' then
            for index, value in pairs(slaves) do
                dz.devices(value).switchOff()
            end
            dz.data.state = 0
        else
            dz.data.state = 0
        end

    end
}

Jedno jest pewne nawet jak będzie działać, to będzie małe opóźnienie, wzgędem tego wirtualnego przełacznika.

 
Dodane : 21/06/2023 10:22 pm
(@prezes)
Wpisów: 9
Bywalec
Autor tematu
 

Dziękuję za pomoc. Postaram się wypróbować skrypt w najbliższym czasie : ).

 
Dodane : 23/06/2023 11:47 pm
Udostępnij: