[Résolut] Cree un Va et Vient 433mhz

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 <\>.
Répondre
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

[Résolut] Cree un Va et Vient 433mhz

Message par deennoo »

Bonjour a tous,

J'ai une problematique : je souhaite cree un va et vient entre un inter chacon, une ampoule MiLight qui peut etre allumé via la custom page, ou une scene.
Actuellement nous sommes obliger de faire un action ON puis OFF sur l'inter pour eteindre cette ampoule si elle est allumé par un autre biais que l'inter (bonjour la clikite de madame et les reflexions : rend moi mon interupteur normal, il marche très bien)

Depuis un moment que j'ai du mal donc je m'adresse a vous.

Les force en presence :
- Domoticz
- Un inter Chacon
- Une amoules Milight
- RFLink
- Le script send twice (que je mets sur tous mes devices meme les IP)

Voici la regle que je souhaite faire :

Code : Tout sélectionner

SI inter passe a ON et que Lumière = OFF
Alors Lumière = ON
Si inter passe a ON et que Lumière = ON
Alors Lumière = OFF
SI inter passe a OFF et que Lumière = OFF
alors Lumière = ON
Si inter passe a OFF et que Lumière = ON
Alors Lumière = OFF
Quelque chose d'assez basic en soit : Un va et vient, physique et logiciel

Le problème est que si je fais cette règle en Blocky : c'est la boucle infernale, Idem en LUA (script_device, et avec if devicechanged).

Une idee SVP ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Cree un Va et Vient 433mhz

Message par deennoo »

bon bah en reflechissant un peu j'ai trouvé.

Voici le bon script :

Code : Tout sélectionner

commandArray = {}
 if (devicechanged['Inter loisir'] == 'On' and otherdevices['Plafonnier Loisir'] == 'Off') then
     commandArray['Plafonnier Loisir']='On'
     
    elseif (devicechanged['Inter loisir'] == 'On' and otherdevices['Plafonnier Loisir'] == 'On') then
     commandArray['Plafonnier Loisir']='Off'
     
    elseif (devicechanged['Inter loisir'] == 'Off' and otherdevices['Plafonnier Loisir'] == 'On') then
     commandArray['Plafonnier Loisir']='Off'
     
    elseif (devicechanged['Inter loisir'] == 'Off' and otherdevices['Plafonnier Loisir'] == 'Off') then
     commandArray['Plafonnier Loisir']='On'
 end
 return commandArray
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: [Resolut] Cree un Va et Vient 433mhz

Message par Neutrino »

Salut,
J'aurais fait comme ça en script_device

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Inter loisir']) then
	if(otherdevices['Plafonnier Loisir']=='Off')then
		commandArray['Plafonnier Loisir']='On'
	else
		commandArray['Plafonnier Loisir']='Off'
	end
end
return commandArray
A chaque changement d'état de Inter loisir, on "toggle" le plafonnier.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: [Resolut] Cree un Va et Vient 433mhz

Message par vil1driver »

@neutrino,

la commande toggle existe ;)

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Inter loisir']) then
      commandArray['Plafonnier Loisir']='Toggle'
end
return commandArray
@deennoo,

parfois utiliser un groupe ou une scène rend bien des services.. on peut leur associer plusieurs interrupteurs pour les commander
donc associer ton inter directement avec le groupe qui contiendrait uniquement ta lampe.

sinon c'est quoi cet inter chacon ? ici j'ai les RF à pile et les micro modules variateurs, ces derniers n'ont pas vraiment de position, 'On' est soit en haut soit en bas suivant si j'ai commandé par l'inter lié ou par RF..
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
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: [Resolut] Cree un Va et Vient 433mhz

Message par deennoo »

@vil1driver

Dans mon installation je n'ai quasiment rien de réellement appairé, un inter chacon va piloter une prise blyss ou un plafonnier sylvercrest par exemple

Les modules sont les "simple" non dimmable, RFlink me remonte des commandes "ON" et "OFF".

J'utilise déjà les groupes/scène pour l'éclairage du coin TV par exemple :
J'ai 3 niveau d'eclairage 25 50 et 75% que je pilotes par une télécommande harmony et irexec, mais j'ai aussi un inter qui active la scène 75%.
Un problème récurrent est d'éteindre une de ses scènes via l'Inter et donc de faire un va et vient.
Si scène 25/50ou75= ON et que inter passe a ON ou OFF alors active scène éteindre le coin TV.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: [Resolut] Cree un Va et Vient 433mhz

Message par vil1driver »

Ah oui ok, le modèle gris.. Effectivement.
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
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: [Resolut] Cree un Va et Vient 433mhz

Message par deennoo »

Les Milights etant considerer comme des dimmer et ayant une assez mauvaise integration complique de connaitre l'etat ON du device

J'ai en parti contourner le probleme en utilisant un truc que j'appelle le different de
ce qui donne pour le pilotage d'un groupe ou scene avec des Milight :

Code : Tout sélectionner

commandArray = {}
 if (devicechanged['Inter plaf salon tv 2'] and otherdevices['Plafonnier Salon'] == 'Off')  then
     commandArray['Group:Plafonnier salon']='On'
 elseif (devicechanged['Inter plaf salon tv 2'] and otherdevices['Plafonnier Salon'] ~= 'Off')  then
     commandArray['Group:Plafonnier salon']='Off'
 end
 return commandArray
Ici va regarder si l'etat du device est different de OFF, si oui alors on fait l'action.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: [Resolut] Cree un Va et Vient 433mhz

Message par vil1driver »

oui pour les dimmer j'utilise aussi le "différent de Off" car domoticz ne remonte plus la bonne info dans le status depuis bien longtemps, dommage..

les joies du contournement ;)
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
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: [Resolut] Cree un Va et Vient 433mhz

Message par deennoo »

petit retour

mon script :

Code : Tout sélectionner

commandArray = {}
 if (devicechanged['Inter plaf salon tv'] and otherdevices['Plafonnier Salon'] == 'Off')  then
     commandArray['Group:Plafonnier salon']='On'
 elseif (devicechanged['Inter plaf salon tv'] and otherdevices['Plafonnier Salon'] ~= 'Off')  then
     commandArray['Plafonnier Salon']='Off'
 end
 return commandArra
mon svalue

Code : Tout sélectionner

801	Inter plaf salon tv	Off	2016-05-20 22:45:18	0
me donne cette erreur :

Code : Tout sélectionner

2016-05-25 09:54:00.178 Error: EventSystem: in inter plaf salon: [string "commandArray = {} ..."]:2: attempt to index global 'devicechanged' (a nil value)
Le script fonctionne tres bien.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

Re: Cree un Va et Vient 433mhz

Message par deennoo »

j'ai la solution :

J'utilise l'editeur de script LUA intégré a Domoticz, betement je n'ai pas fait le necessaire pour lui dire que je travaillais sur des "devices".

a preciser ici :
device lua.PNG
device lua.PNG (9.16 Kio) Consulté 6582 fois
le probleme d'erreur dans les log a disparu.
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Répondre