Script Python : comment coder le niveau de variation d'une lampe
Script Python : comment coder le niveau de variation d'une lampe
Bonjour, je suis débutant en scripting et suis en train de réaliser un script que permet le clignotement des lumières externes lorsque l'alarme se déclenche. Je suis parti du script "clignoteur" de ce forum (viewtopic.php?f=10&t=73), par contre je n'arrive pas à paramétrer le niveau du dimmer(FGD211) qui commande les lampes ! Du coup, si mon dimmer était à 10%, les lampes clignotent à 10%, alors que je souhaiterai qu'elles clignotent toujours à 100% en cas d'alarme.
Voilà, merci pour votre aide
Bonne journée à tous
Denis
Voilà, merci pour votre aide
Bonne journée à tous
Denis
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Script Python : comment coder le niveau de variation d'une lampe
salut,
dans le script que tu cites il est écrit, level 0, essai level 15 (100%)
dans le script que tu cites il est écrit, level 0, essai level 15 (100%)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Script Python : comment coder le niveau de variation d'une lampe
Bonjour
Eh bien lorsque une alarme est detectée il faut tout d'abord que tu passe à 100 % toutes tes lampes
l'api JSON permet cela
et j'ai l'impression qu'il y a une espace entre Set et Level (le %20) Set%20Level&level=6
http://www.domoticz.com/forum/viewtopic ... api#p29842
Eh bien lorsque une alarme est detectée il faut tout d'abord que tu passe à 100 % toutes tes lampes
l'api JSON permet cela
level va donc de 0 pour 0% à 16 pour 100%/json.htm?type=command¶m=switchlight&idx=&switchcmd=Set%20Level&level=6
Level should be a value between 1 (0%) and 16 (100%)
When the light is off, it will be turned on
et j'ai l'impression qu'il y a une espace entre Set et Level (le %20) Set%20Level&level=6
http://www.domoticz.com/forum/viewtopic ... api#p29842
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
-
jackslayter
- Messages : 1040
- Inscription : 30 sept. 2014, 14:40
- Localisation : Isère (38)
Re: Script Python : comment coder le niveau de variation d'une lampe
j'ai ca en lua
Code : Tout sélectionner
--script_device_lampe.lua
commandArray = {}
MaxDimLevel = 16
step = 100.0 / MaxDimLevel
increment = 2
button = 'controle inten salon'
light = 'lampe salon'
if (devicechanged[button]=='On') then
if ('Off' ~= string.len(otherdevices_svalues[light])) then
local currentlevel = tonumber(otherdevices_svalues[light])
if (currentlevel < MaxDimLevel) then
currentlevel = step * currentlevel
newlevel = math.ceil(currentlevel + (increment * step))
--print('Increase ' .. light .. ' from ' .. math.ceil(currentlevel) .. '% to ' .. newlevel .. '%')
commandArray[light]='Set Level ' .. newlevel
end
end
elseif (devicechanged[button]=='Off') then
if ('Off' ~= string.len(otherdevices_svalues[light])) then
local currentlevel = tonumber(otherdevices_svalues[light])
if (currentlevel < MaxDimLevel) then
currentlevel = step * currentlevel
newlevel = math.ceil(currentlevel - (increment * step))
--print('Increase ' .. light .. ' from ' .. math.ceil(currentlevel) .. '% to ' .. newlevel .. '%')
commandArray[light]='Set Level ' .. newlevel
end
end
end
return commandArrayRaspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
Re: Script Python : comment coder le niveau de variation d'une lampe
Bonjour et merci pour vos réponses...
@vil1driver : merci pour ta proposition je viens d'essayer avec la valeur 15 à la place de O dans level, rien ne change. Idem avec d'autres valeurs.
Pour les autres propositions, je teste ce soir
Encore merci à tous.
Bonne journée
Denis
@vil1driver : merci pour ta proposition je viens d'essayer avec la valeur 15 à la place de O dans level, rien ne change. Idem avec d'autres valeurs.
Pour les autres propositions, je teste ce soir
Encore merci à tous.
Bonne journée
Denis
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Script Python : comment coder le niveau de variation d'une lampe
après lecture de la réponse de Patrice,
je me rends compte que json fonctionne un poil différemment que lua,
du coups je complète ma réponse,
dans le script remplaces
par
je me rends compte que json fonctionne un poil différemment que lua,
du coups je complète ma réponse,
dans le script remplaces
Code : Tout sélectionner
On='On'
Off='Off'
json_url1='/json.htm?type=command¶m=switchlight&idx='
json_url2='&switchcmd='
json_url3='&level=0'Code : Tout sélectionner
On='Set%20Level'
Off='Off'
json_url1='/json.htm?type=command¶m=switchlight&idx='
json_url2='&switchcmd='
json_url3='&level=16'
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Script Python : comment coder le niveau de variation d'une lampe
Bonsoir, je viens de faire les essais par rapport à la proposition de Patrice, je suis arrivé à faire fonctionner le script comme je le souhaite en apportant les quelques modifs ci-dessous :
Voilà, en tout cas, merci à tous les contributeurs pour vos réponses qui m'ont permis d'aboutir à la solution.
Bonne soirée
Denis
Code : Tout sélectionner
# l URL Domoticz est construite dans lumon pour allumer et lumoff pour eteindre
# avec les bouts ci dessous
On='On'
Off='Off'
json_url1='/json.htm?type=command¶m=switchlight&idx='
json_url2='&switchcmd='
json_url3='&level=0'
[b][color=#FF0000]json_url4='Set%20Level&level=100'
# reglage du peripherique a 100 pour 100[/color][/b]
[color=#FF0000][b]def lum100():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+json_url4
r=requests.get (requete)[/b][/color]
#la seule difference entre les 2 est le On/Off entre json_url2 et json_url3
# pour basculer l'etat a On/Off
def lumon():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+On+json_url3
r=requests.get (requete)
time.sleep (dodo)
def lumoff():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+Off+json_url3
r=requests.get (requete)
time.sleep (dodo)
[color=#FF0000][b]lum100()[/b][/color]
# la fonction qui est appelee max_iterations fois
for passage in range (0,2):
lumon()
lumoff()Bonne soirée
Denis
Re: Script Python : comment coder le niveau de variation d'une lampe
Désolé, je viens de me rendre compte que les modifs de code (création et lancement de lum100) ) ne sont pas lisibles (j'avais mis en gras et en rouge) mais cela n'a pas fonctionné, du coup je recolle le script en entier...
Bonne soirée
Denis
Code : Tout sélectionner
#!/usr/bin/python
# il faut le module requests
# sudo pip install requests
import time
import requests
# le nombre de clignotements que l'on veut
max_iterations=4
# le temps entre un allumage et une extinction en secondes
dodo=2
# les parametres de Domoticz
domoticz_ip='192.168.0.7'
domoticz_port='8080'
# l'idx du peripherique a allumer/eteindre
periph_idx='92'
# fin du parametrage #
# l URL Domoticz est construite dans lumon pour allumer et lumoff pour eteindre
# avec les bouts ci dessous
On='On'
Off='Off'
json_url1='/json.htm?type=command¶m=switchlight&idx='
json_url2='&switchcmd='
json_url3='&level=0'
json_url4='Set%20Level&level=100'
# reglage du peripherique a 100 pour 100
def lum100():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+json_url4
r=requests.get (requete)
#http://192.168.0.7:8080/json.htm?type=command¶m=switchlight&idx=92&switchcmd=Set%20Level&level=100
# la seule difference entre les 2 est le On/Off entre json_url2 et json_url3
# pour basculer l'etat a On/Off
def lumon():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+On+json_url3
r=requests.get (requete)
time.sleep (dodo)
def lumoff():
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_idx+json_url2+Off+json_url3
r=requests.get (requete)
time.sleep (dodo)
lum100()
# la fonction qui est appelee max_iterations fois
for passage in range (0,2):
lumon()
lumoff()Denis
Re: Script Python : comment coder le niveau de variation d'une lampe
Dernière précision, comme vous pouvez le voir dans le script ci-dessus, pour avoir le dimmer à 100%, il faut paramètrer le level à 100.
Bye
Denis
Bye
Denis