DZevents - Gestion d'un arrosage automatique

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
Domobox30
Messages : 14
Enregistré le : 24 mars 2017, 21:53

DZevents - Gestion d'un arrosage automatique

Message par Domobox30 » 21 mai 2018, 19:43

Bonjour à tous,

Je viens de finaliser l'installation matérielle de mon arrosage :

- 9 électrovannes alimentant 9 zones différentes (aussi bien du gazon que du "goutte à goutte"
- un raspberry avec Domoticz
- une carte relais, 16 entrées.

L'instal de ma carte relais, pas de pb. J'ai bien dans mon interface 16 interrupteurs qui ouvrent/ferment les 16 relais de ma carte.

Je viens de créer un interrupteur virtuel (Dummy) nommé 'Programmateur' qui lors de son changement d'état, permet d'alimenter ou non un groupe dans lequel se trouve mes 9 relais d'arrosage.
L'utilisation de cet interrupteur me permet d'activer ou de désactiver l'arrosage, par exemple, si je m'aperçois qu'il pleut, je passe l'interrupteur sur off et le programme ne lance pas. Dans un deuxième temps, j'intègrerai une variable pluie ou humidité mais je n'en suis pas encore là ;)

Voilà ce que je voudrai, autant vous dire que j'ai rapidement abandonné l'idée de faire ça en blockly et que je me suis lancé dans le DZevents... sauf que je débute et ne connais rien en programmation.

Bref au grès des forums et du wiki, j'ai fait le script suivant (pour le moment, avec deux interrupteurs virtuels "Test" et "Test 2", qui me permettent de teste et symboliser les vannes) :

Code : Tout sélectionner

-- Programmation Arrosage
-- Conçu par Sébastien ANDEVERT - sebastien@uppo.fr


-- Lancement du script
return {

	-- Etat du script
	active = true, -- à basculer à 'false' pour désctiver le lancement de ce script

	-- condition de lancement : état sur 'on' des devices nommées dans la liste suivante
	on = {
		devices = {
			'Programmateur', -- nom du premier device 
			-- 'abc*', -- à utiliser si vous souhaitez faire démarrer tous les devices dont le nom commence par 'abc'
			-- 258, -- id du device à activer
		},

	--[[timer = {
			-- timer triggers.. if one matches with the current time then the script is executed
			'at 13:45',
			'at 18:37',
			'every 3 minutes on mon,tue,fri at 16:00-15:00'
		}]]--
	},

-- on nomme la fonction
	execute = function(domoticz, Arrosage)
	-- on précise la condition, ici la fonction arrosage doit etre à on pour se lancer	
		if (Arrosage.state == 'On') then
		    domoticz.devices('Test').switchOn().forMin(1)-- on défini le device à allumer et pendant combien de temps
		    
		    if (device.name == 'Test' and device.lastUpdate.minutesAgo > 1) then
            --je vérifie si le device precedent est sur off depuis mini une minute
            domoticz.devices('Test 2').switchOn().forMin(1) -- je lance alors l'arrosage Test 2 pour une minute
            end
		    
		end
		
	end
}
Déjà, si vous pouvez me dire si mon installation et les principes de mon code sont corrects, ce serait cool (souriez pas à mes lignes de commentaires, je vous dis que je suis une buse ;) )

Voilà les évolutions que je souhaiterai :

- j'ai 9 zones, dont 2 avec du goutte à goutte (dont des temps d'arrosage différents)
- grâce à des variables utilisateurs, je voudrai définir les temps d'arrosage de chacune des zones => comment appeler cette variable dans mon script dans 'forMin(nomdemavariable)' ?
- je vais arroser tous les jours, une fois par jour, sauf les GàG qui seront arrosés deux fois => quelle est la solution la plus propre pour l'intégrer dans mon script ?
- Question bonus : Je lance mon arrosage avec mon fameux bouton "Programmateur". L'arrosage se lance, au bout de la 3° vannes, je m'aperçois qu'il pleut... si j'éteins mon "Programmateur", le script va t'il continuer ?

Enfin, je ne suis pas sur de la dernière partie de mon script. Je ne peux pas lancer 2 zones à la fois (la pompe va y rester, sinon !). Comment, en langage de programmation, je peux dire mon : "un tu lance Test. Quand test est éteint, tu enchaine sur Test 2." ? Le "lastUpdate" semble ne pas fonctionner...

Merci beaucoup à tous !

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


KLM30330
Messages : 2
Enregistré le : 19 juin 2018, 22:35

Re: DZevents - Gestion d'un arrosage automatique

Message par KLM30330 » 22 juin 2018, 21:01

Bonjour,

J'ai moi aussi les électrovannes de mon arrosage pilotées depuis un carte à relais piloté par un raspberry.
Je programme le délais de fonctionnement des électrovannes directement dans l'interface Domoticz via l'onglet scénario.
Je définis le temps de fonctionnement de l'interrupteur, je renseigne le délais d’extinction en seconde.

je peux t'envoyer des copies d'écran de ma prog si tu le souhaites.

Par contre, je pilote ma carte à relais depuis les ports GPIO grâce à la librairie Wiringpi et je suis bridé à 8 sorties. Peux tu m'expliquer quelle technologie tu utilises pour piloter une carte 16 relais (1Wire, I2C, SPI...)?

D'avance merci.

Domobox30
Messages : 14
Enregistré le : 24 mars 2017, 21:53

Re: DZevents - Gestion d'un arrosage automatique

Message par Domobox30 » 24 juin 2018, 22:12

Merci pour ton retour, oui, je veux bien des copies d'écran pour voir comment tu as fait tout ceci...

Concernant la carte, la voici, sur Amazon : une carte 16 relais, avec un connecteur RJ45 : https://www.amazon.fr/gp/product/B00NBG ... UTF8&psc=1

Elle est souvent en rupture...

Merci ^^

ramirez22
Messages : 6
Enregistré le : 30 août 2018, 19:33

Re: DZevents - Gestion d'un arrosage automatique

Message par ramirez22 » 05 sept. 2018, 16:53

Bonjour,

Je relance ce post car ma situation est quasi identique (5 zones arroseurs, 2 zones goutte à goutte + la pompe) avec carte à 16 relais etc ...
C'est juste histoire de faire part de ma petite expérience.

En gros, le but est d'ouvrir les électrovannes goutte à goutte et la zone 1 puis on lance la pompe après 1 seconde (histoire d'être sûr de ne pas lancer la pompe avec tous les circuits fermés. J'ai programmé un blocky qui réalise ce contrôle et qui coupe la pompe au cas où aucune vanne n'est ouverte, mais autant prendre des précautions, au prix de ces bêtes là :D ) (d'autant plus que le temps de réponse du système est assez lent).

Au bout "d'un certain temps" (référence à un humoriste bien connu), on ouvre la zone 2 et on ferme la zone 1 (les GàG restent ouverts).
Etc jusqu'à la dernière zone. A ce moment, on coupe d'abord la pompe, puis les électrovannes (GàG 1 et 2 et la zone 5).
Sur le papier, c'est cool. Mais à réaliser, c'est une autre histoire.

Domoticz permet cela sans passer par la case script : en paramétrant une scène, on arrive au résultat escompté sans problème.

Dans l'ordre :
- créer une scène
- Ajouter un dispositif (pompe) sur ON, avec un délais de 1 seconde à l'allumage, et (pour l'exemple), 49 secondes en délais d'extinction
- Ajouter un dispositif (zone 1) sur ON, délais d'allumage 0, délais d'extinction 10 secondes
- Ajouter un dispositif (zone 2) sur ON, délais d'allumage 9 secondes, délais d'extinction 11 secondes
- Ajouter un dispositif (zone 3) sur ON, délais d'allumage 19 secondes, délais d'extinction 11 secondes
- Ajouter un dispositif (zone 4) sur ON, délais d'allumage 29 secondes, délais d'extinction 11 secondes
- Ajouter un dispositif (zone 5) sur ON, délais d'allumage 39 secondes, délais d'extinction 12 secondes

Explications:
Au lancement de la scène (t=0), la zone 1 est ON pendant 10 secondes (t=10). La pompe s'activera une seconde + tard (t=1) et s'arrêtera après 49 secondes de fonctionnement (durée de fonctionnement (49) + retard d'activation (1) soit t=50).
A t=9, la zone 2 passe sur ON pour une durée de 11 seconde (9+11 donc repassera à OFF à t=20)
Etc... chaque zone commençant 10 secondes après la précédente et durant 11 secondes pour se chevaucher avec la suivante.
Le dernier "cycle" : à t=39, la zone 5 passe sur ON pour 12 secondes. Donc elle fonctionnera jusqu'à t=51 (39+12). Elle s'arrêtera donc bien après la pompe (t=50).

Pour interrompre le cycle, créer une scène avec tous les dispositifs ci-dessus, mais avec la commande à OFF et les délais ci-dessous:
- pour la pompe : délais d'allumage et d’extinction à 0 (arrêt immédiat)
- pour les vannes : délais d'allumage à 0 et d'extinction à 1 (arrêt temporisé : toujours pour fermer les vannes après que la pompe soit arrêtée)

je n'ai pas traité de la commande des électrovannes du GaG, mais vous devriez être à même de les intégrer à la scène d'après ce que vous venez de lire (même condition pour la scène d'arrêt que les autres vannes, et pour la mise en route, délais d'allumage de 0 et durée = durée de fonctionnement de la pompe qui, je le rapelle, s'arrêtera 1 seconde plus tard puisqu'elle a commencé une seconde plus tard :!: )

PS : pour les puristes, l'arrêt du pilotage des vannes après l'arrêt de la pompe n'a que peu d'intérêt : généralement, les vannes sont des vannes à membranes (en gros, elles utilisent la pression de l'eau pour s'aider à s'ouvrir), ce qui fait que si la pompe s'arrête, elles vont se fermer toutes seules malgré la commande d'ouverture. Le délais d'arrivée de l'ordre de fermeture n'a donc que peu d'importance, mais il suffit que pour une fois, la technologie de la vanne change (vanne à commande directe) et cela pourrait occasionner des problèmes au matériel.Ce raisonnement est valable également au début du cycle, lorsqu'on pilote la vanne avant de lancer la pompe (elle ne s'ouvrira pas tant que la pression de l'eau ne sera pas suffisante). Mais j'assume pleinement ce choix :lol:

A+

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre