Cnagement icone widget

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Cnagement icone widget

Message par Wolfen38 »

Salut à tous,

J'avais 2 questions sur les icones de widgets personnalisés.

1 : Comment retrouver le numéro de l'icone ?

2 : J'utilisais ce dzvents qui fonctionne nickel :

Code : Tout sélectionner

-- Icon changer

local ICON_TEMPOBLEU = 131
local ICON_TEMPOBLANC = 130
local ICON_TEMPOROUGE = 132

return {
    logging = {
	level = domoticz.LOG_DEBUG, -- Select one of LOG_DEBUG, LOG_INFO, LOG_ERROR, LOG_FORCE to override system log level
	},
	on = {
        devices = {650},
        },
		
		

    execute = function(dz, item)
	
	
	if item.level == 10 then
	    item.setIcon(ICON_TEMPOBLEU)
		--item.rename('TEMPO BLEU ')
		item.switchSelector(10).silent()
        elseif item.level == 20 then
        item.setIcon(ICON_TEMPOBLANC)
		--item.rename('TEMPO BLANC ')
        item.switchSelector(20).silent()
		elseif item.level == 30 then
        item.setIcon(ICON_TEMPOROUGE)
		--item.rename('TEMPO ROUGE ')
        item.switchSelector(30).silent()
		    
    end
	
	   
    end
 

}
J'ai voulu en faire un autre en repartant de la même trame :

Code : Tout sélectionner

-- Icon changer

local ICON_RADIATEUROFF = 133
local ICON_RADIATEURCONF0 = 134
local ICON_RADIATEURCONF1 = 135
local ICON_RADIATEURCONF2 = 136
local ICON_RADIATEURECO = 137
local ICON_RADIATEURGEL = 128

return {
    logging = {
	level = domoticz.LOG_DEBUG, -- Select one of LOG_DEBUG, LOG_INFO, LOG_ERROR, LOG_FORCE to override system log level
	},
	on = {
        devices = {722},
        },
		
		

    execute = function(dz, item)
	
	
	if item.level == 0 then
	    item.setIcon(ICON_RADIATEUROFF)
		--item.rename('TEMPO BLEU ')
		item.switchSelector(0).silent()
        elseif item.level == 10 then
        item.setIcon(ICON_RADIATEURCONF0)
		--item.rename('TEMPO BLANC ')
        item.switchSelector(10).silent()
		elseif item.level == 20 then
        item.setIcon(ICON_RADIATEURCONF1)
		--item.rename('TEMPO ROUGE ')
        item.switchSelector(20).silent()
		elseif item.level == 30 then
        item.setIcon(ICON_RADIATEURCONF2)
		--item.rename('TEMPO ROUGE ')
        item.switchSelector(30).silent()
		elseif item.level == 40 then
        item.setIcon(ICON_RADIATEURECO)
		--item.rename('TEMPO ROUGE ')
        item.switchSelector(40).silent()
		elseif item.level == 50 then
        item.setIcon(ICON_RADIATEURGEL)
		--item.rename('TEMPO ROUGE ')
        item.switchSelector(50).silent()
		elseif item.level == 60 then
        item.setIcon(ICON_RADIATEUROFF)
		--item.rename('TEMPO ROUGE ')
        item.switchSelector(60).silent()
		    
    end
	
	   
    end
 

}

Ca fonctionne, les icones changent, mais le script est appelé toutes les 5 secondes au lieu d'etre appelé que lorsque l'inter est actionné.

Je ne comprends pas la différence...

Merci.
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Cnagement icone widget

Message par Flying Domotic »

C'est probablement que le device 722 est mis à jour toutes les 5 secondes ...

Selon son type, l'historique des changements peut être conservé dans Domoticz.
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Cnagement icone widget

Message par Wolfen38 »

Je ne comprends pas pourquoi ca fonctionne avec mon script de base et pas avec celui ci où j'ai normalement appliqué le même principe.
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Cnagement icone widget

Message par Wolfen38 »

J'ai supprimé la ligne "item.switchSelector(10).silent()"

Ca fonctionne, ca ne tourne plus en boucle, mais deja le changement d'icone est hyper log a se faire, et je ne comprends pas non plus pourquoi dans les log l'action est doublé

Code : Tout sélectionner

2024-03-07 12:23:28.750 Status: User: Wolfen38 (IP: xxxxxxxxxxxx) initiated a switch command (725/Radiateur Anna mode/Set Level)
2024-03-07 12:23:28.915 Status: dzVents: Info: ------ Start external script: icone-radiateur-anna.lua: Device: "Radiateur Anna mode (Zigate)", Index: 725
2024-03-07 12:23:28.916 Status: dzVents: Debug: OpenURL: url = http://127.0.0.1:8080/json.htm?type=command&param=setused&used=true&name=Radiateur+Anna+mode&description=&idx=725&switchtype=18&customimage=139
2024-03-07 12:23:28.916 Status: dzVents: Debug: OpenURL: method = GET
2024-03-07 12:23:28.916 Status: dzVents: Debug: OpenURL: post data = nil
2024-03-07 12:23:28.916 Status: dzVents: Debug: OpenURL: headers = nil
2024-03-07 12:23:28.916 Status: dzVents: Debug: OpenURL: callback = nil
2024-03-07 12:23:28.917 Status: dzVents: Info: ------ Finished icone-radiateur-anna.lua
2024-03-07 12:23:28.919 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2024-03-07 12:23:28.931 Status: EventSystem: reset all device statuses...
2024-03-07 12:23:35.370 Status: dzVents: Info: ------ Start external script: icone-radiateur-anna.lua: Device: "Radiateur Anna mode (Zigate)", Index: 725
2024-03-07 12:23:35.371 Status: dzVents: Debug: OpenURL: url = http://127.0.0.1:8080/json.htm?type=command&param=setused&used=true&name=Radiateur+Anna+mode&description=&idx=725&switchtype=18&customimage=139
2024-03-07 12:23:35.371 Status: dzVents: Debug: OpenURL: method = GET
2024-03-07 12:23:35.371 Status: dzVents: Debug: OpenURL: post data = nil
2024-03-07 12:23:35.371 Status: dzVents: Debug: OpenURL: headers = nil
2024-03-07 12:23:35.371 Status: dzVents: Debug: OpenURL: callback = nil
2024-03-07 12:23:35.372 Status: dzVents: Info: ------ Finished icone-radiateur-anna.lua
2024-03-07 12:23:35.374 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

Je viens de déplacer ton message dans la section dédiée aux scripts.
Merci de prendre connaissance de la section Bien utiliser le forum et de créer vos sujets dans la section la plus adéquate.
Répondre