Page 2 sur 2

Re: Grouper des ampoules RGBWW

Publié : 24 nov. 2021, 00:15
par beeenj
Bonsoir @garycooper,
désolé je viens de voir le message que ce soir.

C'est tout à fait un script dzVents qu'il faut créer.

Ensuite il faut créer un groupe dans Scene/groupe.
Ce groupe ne sert qu'à lister les lampes, en aucun les paramètres choisis ne serviront dans le script. Le nom du groupe est à remplacer là où il y a 'Group Color' en conservant les guillements.

Et dernière chose, il faut créer un interrupteur virtuel RGBWW qui servira de modèle à toutes les lampes. Son nom est à mettre à la place de 'Dummy Color'.

En résumé:
  • Un groupe pour lister les lampes
  • Un interrupteur virteur pour les contrôler
Bonne Soirée.

Re: Grouper des ampoules RGBWW

Publié : 25 nov. 2021, 23:25
par garycooper
Merci pour tes précisions. Ca marche ... presque ...
Lorsque j'actionne le switch RGBW, ça allume bien les lampes associées mais ça ne met pas la couleur demandée. En fait, ça les allume sur leurs dernières couleur et intensité. J'ai également le message d'erreur suivant :
2021-11-25 23:20:04.646 Error: dzVents: local netWork not open for dzVents openURL call !
2021-11-25 23:20:04.646 Error: dzVents: check dzVents wiki (look for 'Using dzVents with Domoticz')
2021-11-25 23:20:04.647 Error: dzVents: local netWork not open for dzVents openURL call !
2021-11-25 23:20:04.647 Error: dzVents: check dzVents wiki (look for 'Using dzVents with Domoticz')
Je précise que dzVents est bien activé dans les paramètres. J'ai d'ailleurs 2 autres scripts dzVents qui fonctionnent parfaitement.
Si j'éteins le switch RGBW, les lampes associées s'éteignent sans message d'erreur.

Re: Grouper des ampoules RGBWW

Publié : 19 déc. 2021, 15:31
par Martial
Bonjour,
Avec la zigate et son plugin, c'est trivial et efficace (notion de groupe) car défini dans la norme zigbee.
Je le fais avec toutes les fonctions (couleur, température du blanc, interrupteur)

Je suis étonné que zigbee2mqtt ne le permette pas

Re: Grouper des ampoules RGBWW

Publié : 17 juil. 2022, 00:11
par Skwi
Bonjour, j'aimerai piloter plusieurs yeelight en même temps (couleur/brightness), mais j'ai deux soucis :
1/ Quand je récupère les infos de mon dummy via getColor, ça récupère l’état juste avant que je modifie mon dummy => si le dummy était rouge et que je le passe en vert, le getColor retourne du rouge au lieu du vert

2/ le setColor me génère une URL avec trois "/" au lieu d'un seul, et donc ça ne marche pas
http://127.0.0.1:8080///json.htm?type=c ... :49,"b":69}

Une idée de comment bypasser et corriger mes deux problèmes?

Merci

Re: Grouper des ampoules RGBWW

Publié : 18 juil. 2022, 16:51
par Thorgal
Alors j'avais vu ca il y a pas longtemps https://www.domoticz.com/forum/viewtopi ... 20#p252265

Mais, quand j'ai voulu tester chez moi ca a l'air de marcher, tu tournes avec quelle version de domoticz ?
- J'ai crée un color switch
- j'ai codé un bout de code bateau

Code : Tout sélectionner

return
    {
    active = true,
        on =
        {
            devices = {'totest'},
        },
        logging =
        {
            level = domoticz.log_info,
            marker = "template"
        },
     execute = function(domoticz, device)

         if (device.setColor) then
          domoticz.log(device.getColor(), domoticz.LOG_INFO)
         end
    end
}
Et ca m'affiche bien la valeur selectionnée en logs, sinon tu as essayé en LUA plutot que avec dzevent ?

Pour ton second probleme, aucune idée, mais je sais que ce setting a une importance sur l'url generee.
dzVents

Enable/Disable the dzVents eventsystem and set the logging.

when enabling dzVents make sure that in the Security section in the settings (Setup > Settings > System > Local Networks (no username/password) you allow 127.0.0.1 (and / or ::1 when using IPv6 ) to not need a password. dzVents does use this port to get the location settings and to send certain commands to Domoticz. Finally make sure you have set your current location in Setup > Settings > System > Location, otherwise there is no way to determine nighttime/daytime state.

Re: Grouper des ampoules RGBWW

Publié : 19 juil. 2022, 16:50
par Skwi
je suis en version: 2022.1, sous docker

j'ai bien les ip autorisées, et la location, testé avec un dummy rgb, rgbww

avec le lien donné, j'ai remarqué que domoticz.settings['Domoticz url'] retourne http://127.0.0.1:8080// (mais je n'ai pas trouvé de doc concernant ce "domoticz url" et dans le /json.htm?type=settings ce champ n'existe pas non plus)

j'ai tenté avec 127.0.0.*;127.0.0.1:8080;127.0.0.1 mais ça génère tjs l'url avec // à la fin

mon bout de script :

Code : Tout sélectionner

    return
    {
    active = false,
        on =
        {
     devices = {'Yeelight dummy'},
        },
        logging =
        {
            level = domoticz.log_info,
            marker = "devinprogress"
        },
        execute = function(domoticz, device)
     if (device.setColor) then
      local yeelight = domoticz.devices('yeelight-strip-mezza')
      local rgb = device.getColor()
      domoticz.log(rgb, domoticz.LOG_INFO)
       --setColor(r, g, b, br, cw, ww, m, t)
       --yeelight.setColor(rgb.r,rgb.g,rgb.b,100,0,0,0,0)
       --yeelight.setColor(rgb.r,rgb.g,rgb.b)
       --yeelight.setColor(0,255,0)
      domoticz.devices().forEach(function(device)
       if (device.name ==  'yeelight-strip-mezza') then
        device.setColor(rgb.r,rgb.g,rgb.b,rgb.br,rgb.cw,rgb.ww,rgb.m,rgb.t)
       end
      end)
     end
    end
    }

Re: Grouper des ampoules RGBWW

Publié : 20 juil. 2022, 17:19
par Thorgal
Pas de probleme de mon coté

Code : Tout sélectionner

2022-07-20 17:17:00.337 Status: dzVents: Domoticz url http://127.0.0.1:8080
avec

Code : Tout sélectionner

print('Domoticz url '..domoticz.settings['Domoticz url'])
Doit vraiment y avoir un soucis coté config, peut être le docker. Sinon de mon coté je suis sur le build 14382.

Re: Grouper des ampoules RGBWW

Publié : 21 juil. 2022, 09:49
par Skwi
je n'ai rien trouvé dans mon image docker, ni dans la bd domoticz directement, concernant cette url, du coup avec l'appel "externe" + construction de l'url ça marche, mais c'est triste que je ne puisse pas faire un simple getcolor / setcolor :(

Code : Tout sélectionner

return {
	active = false,
	on = {
		devices = {
			'Yeelight dummy'
		},
	
		httpResponses   = { 
		    "getColorFromDevice"    
		},
	},
	
	logging =
		{
			level = domoticz.log_info,
			marker = "devinprogress"
		},

	execute = function(domoticz, item)
		--local yeelight = domoticz.devices('yeelight-strip-mezza')
		
	    local function getDeviceStatus(idx)
			local url = "http://192.168.xx:8080/json.htm?type=devices&rid=" .. idx 
			domoticz.log(url, domoticz.LOG_INFO)
            domoticz.openURL  ({ url = url, method = "GET", callback = "getColorFromDevice" })
        end

        if item.isDevice then
            getDeviceStatus(item.id) 
        else 
            dataReceived = item.json
			            
            local colorTable = domoticz.utils.fromJSON(dataReceived.result[1].Color)
            domoticz.log(colorTable, domoticz.LOG_INFO)
            local name = dataReceived.result[1].Name
            
            local level = dataReceived.result[1].Level
            
            level = math.floor((level / 100) * 255) -- map 0-100 to 0-255

            local dataToSend = string.format("%02x", colorTable.r) .. string.format("%02x", colorTable.g) .. string.format("%02x", colorTable.b) --.. string.format("%02x", colorTable.ww) .. string.format("%02x", level)
              
			--print('Data to clock as r,g,b,ww,brightness: ' ..  dataToSend)			  
			--domoticz.log('coucou ', domoticz.LOG_INFO)
			--domoticz.log(dataToSend, domoticz.LOG_INFO)
			if not (dataReceived.result[1].Status == 'Off') then
			url = 'http://192.168.xx:8080/json.htm?type=command&param=setcolbrightnessvalue&idx=' .. domoticz.devices('yeelight-strip-mezza').idx .. '&hex='.. dataToSend ..'&brightness='.. level ..'&iswhite=false'
            domoticz.openURL  ({ 
				url = url, 
				method = "GET"
			})
			else
				domoticz.devices('yeelight-strip-mezza').switchOff()
			end
			
			--domoticz.devices('yeelight-strip-mezza').setColor(colorTable.r,colorTable.g,colorTable.b,level)
			
			--domoticz.log('coucou ' .. domoticz.devices('yeelight-strip-mezza').idx, domoticz.LOG_INFO)
			
			
			--local url = "http://192.168.xx:8080/json.htm?type=devices&rid=" .. idx 
			
			-- Specify RGB and brightness (optional)
    -- RGB as hexadecimal number, RRGGBB without prefix (no 0x or #)

-- /json.htm?type=command&param=setcolbrightnessvalue&idx=99&hex=RRGGBB&brightness=100&iswhite=false


        end
    end
}