Question: comment feriez-vous pour scripter ceci ?

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 <\>.
f-d-m
Messages : 156
Inscription : 25 juin 2019, 21:36

Question: comment feriez-vous pour scripter ceci ?

Message par f-d-m »

Bonjour,

Voici ma question:
- j'ai une ouïe assez déficiente dans les aigus et je n'entends quasiment pas le bip bip bip du système d'alarme lors du compte à rebours pendant lequel je dois introduire mon code d'accès
- je souhaiterais faire une indication lumineuse pour y pallier.

Je dispose de:
- Domoticz bien sûr
- un virtual switch qui sait si l'alarme est armée
- un virtual switch qui sait si la porte d'entrée est fermée ou ouverte
- une ampoule Aqara Zigbee toujours connectée, réglage de couleur blanc froid à blanc chaud et puissance de 0% à 100%.

Ce que je voudrais faire:
- sauvegarder l'état de la lampe pour la remettre dans le même état à la fin de l'alerte
- si l'alarme est armée, et que la porte passe de l'état "fermée" à "ouverte", faire clignoter la lampe en blanc froid pendant 5 secondes
- remettre la lampe dans l'état antérieur. (a priori il n'est pas connu car l'allumage progressif est calé sur le coucher/lever du soleil)

Ca vous inspire ?
Vous feriez cela en dzVents ?

Merci pour vos bonnes suggestions :)

Frédéric
---
Bruxelles

RPi 3B, Domoticz 2024.7, SSD, dongle Zigbee Sonoff
IPX-800 V3
multiples Sonoff et similaires (Tasmota, ESPeasy), multiples appareils Zigbee
SMA Sunny Boy 3.6
Ksenia Lares 4.0
Compteur digital à la norme DSMR5 - interface ESP32
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Question: comment feriez-vous pour scripter ceci ?

Message par Keros »

Je viens de déplacer ton sujet dans la section dédiée aux scripts.

Tu peux tout à fait faire ton besoin en DzVents. La fonction historique (persistant data) te permettra de sauvegarder l'état de la lampe.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
f-d-m
Messages : 156
Inscription : 25 juin 2019, 21:36

Re: Question: comment feriez-vous pour scripter ceci ?

Message par f-d-m »

Voici où j'en suis (en ayant lu attentivement le wiki)

J'ai 3 devices, et je les adresse volontairement par leur n° afin de ne pas tout casser si je change leur nom
- le switch "capteur porte d'entrée" (*)
- le switch "alarme armée" (**)
- une ampoule Aqara CW/WW (blanc) dimmable commandée via Zigbee.

(*) j'ai un portier Mobotix T24 et une porte électrifiée, qui informe domoticz via http

(**) alarme homologuée et installée par une société spécialisée ; j'ai requis une carte I/O dès la commande il y a 10 ans ; les sorties sont pilotées par transistor à collecteur ouvert ; j'y ai connecté des relais 12V avec une diode anti-retour de protection ; le contact sec du relais rentre dans une entrée digitale de mon IPX800, qui transmet en http à domoticz. Un GPIO aurait aussi fait l'affaire.

Dans le code je ne suis pas arrivé à faire clignoter la lampe de manière fiable comme expliqué dans le wiki https://www.domoticz.com/wiki/DzVents:_ ... _scripting

Code : Tout sélectionner

-- flash a light for 3 times
    device.switchOn().forSec(2).repeatAfterSec(1, 3)
L'action ne fonctionne que si la lampe est éteinte, mais l'éteindre puis envoyer l'action ne fonctionne pas mieux.

Le script lance toutes les actions à la fois et non pas séquentiellement, d'où les multiples "afterSec".

En temps normal, la lampe est allumée progressivement au coucher du soleil et reste allumée jusqu'à minuit environ, puis elle passe en mode veilleuse 1%.
Le déclenchement du script veille à la remettre dans l'état où elle était.
Je ne suis pas arrivé à intervenir sur la couleur. "getColor" ramène un array JSON, mais comment le renvoyer sur l'ampoule après ?.


Code : Tout sélectionner

return {
   	on = { devices = { 123 }}, -- id du switch capteur porte d'entrée

	execute = function(domoticz, switch)
	    local lampadaire = domoticz.devices(28) -- id lampe zigbee dimmable
	    local lampadaireStatus = domoticz.devices(28).state
	    local lampadaireColor = domoticz.devices(28).getColor()
	    local lampadaireDimmer = domoticz.devices(28).rawData[1]
	 
	 		domoticz.log(domoticz.devices(16).state)
				domoticz.log(domoticz.devices(123).state)
	-- device 16 : id du switch virtuel "alarme armée"			
		if (domoticz.devices(16).state == 'On' and domoticz.devices(123).state == 'Open') then

			domoticz.log('Door opened and alarm is on')
	
			domoticz.log(lampadaireStatus)
			domoticz.log(lampadaireColor)
			domoticz.log(lampadaireDimmer)
		-- impossible de faire clignoter comme expliqué dans le wiki
			lampadaire.dimTo(100)
			lampadaire.dimTo(0).afterSec(1)
          	        lampadaire.dimTo(100).afterSec(2)
			lampadaire.dimTo(0).afterSec(3)
		        lampadaire.dimTo(100).afterSec(4)
			lampadaire.dimTo(0).afterSec(5)
			lampadaire.dimTo(100).afterSec(6)
			lampadaire.dimTo(0).afterSec(7)
			lampadaire.dimTo(100).afterSec(8)
		-- restaurer à l'état entérieur après 22 secondes
			lampadaire.dimTo(lampadaireDimmer).afterSec(30)
--			
		end
	end
}
---
Bruxelles

RPi 3B, Domoticz 2024.7, SSD, dongle Zigbee Sonoff
IPX-800 V3
multiples Sonoff et similaires (Tasmota, ESPeasy), multiples appareils Zigbee
SMA Sunny Boy 3.6
Ksenia Lares 4.0
Compteur digital à la norme DSMR5 - interface ESP32
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Question: comment feriez-vous pour scripter ceci ?

Message par Keros »

Les fonctions pour les couleurs sont là: https://www.domoticz.com/wiki/DzVents:_ ... .2FApplamp

Tu as mis du débogage dans ton code, c'est très bien. Tu pourrais nous passer les logs d'exécution du script ?

Tes aftersec me semble la bonne façon de faire. Tu as essayé avec switchOn et switchOff à la place de dim ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
f-d-m
Messages : 156
Inscription : 25 juin 2019, 21:36

Re: Question: comment feriez-vous pour scripter ceci ?

Message par f-d-m »

Keros a écrit : 12 déc. 2022, 10:09 Tu as essayé avec switchOn et switchOff à la place de dim ?
Oui, et déçu. Selon l'état du dimmer elle clignote ou bien elle reste allumée.

Cette ampoule Aqara clignote en mode soft, les transitions se font progressivement. Je ne sais pas si toutes les ampoules Zigbee se comportent comme ça.

Voici le log:

Code : Tout sélectionner

2022-12-12 13:41:23.910 Status: dzVents: Info: Handling events for: "FrontDoor (mx)", value: "Open"
2022-12-12 13:41:23.911 Status: dzVents: Info: ------ Start internal script: dz Alerte Prealarme: Device: "FrontDoor (mx) (virtual)", Index: 123
2022-12-12 13:41:23.914 Status: dzVents: Info: On
2022-12-12 13:41:23.914 Status: dzVents: Info: Open
2022-12-12 13:41:23.914 Status: dzVents: Info: Door opened and alarm is on
2022-12-12 13:41:23.914 Status: dzVents: Info: Off
2022-12-12 13:41:23.915 Status: dzVents: Info: {["red"]=0, ["b"]=0, ["g"]=0, ["ww"]=190, ["m"]=2, ["blue"]=0, ["r"]=0, ["hue"]=300, ["t"]=190, ["saturation"]=0.0, ["brightness"]=0.0, ["mode"]=2, ["value"]=0.0, ["temperature"]=190, ["green"]=0, ["cw"]=65, ["cold white"]=65, ["warm white"]=190, ["isWhite"]=true}
2022-12-12 13:41:23.915 Status: dzVents: Info: Off
2022-12-12 13:41:23.916 Status: dzVents: Info: ------ Finished dz Alerte Prealarme 
---
Bruxelles

RPi 3B, Domoticz 2024.7, SSD, dongle Zigbee Sonoff
IPX-800 V3
multiples Sonoff et similaires (Tasmota, ESPeasy), multiples appareils Zigbee
SMA Sunny Boy 3.6
Ksenia Lares 4.0
Compteur digital à la norme DSMR5 - interface ESP32
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Question: comment feriez-vous pour scripter ceci ?

Message par Keros »

Je pense que c'est la commande .dimTo() qui ne doit pas être la bonne commande pour ton ampoule.

Tu as essayé les diverses fonctions DzVents : https://www.domoticz.com/wiki/DzVents:_ ... .2FApplamp ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
f-d-m
Messages : 156
Inscription : 25 juin 2019, 21:36

Re: Question: comment feriez-vous pour scripter ceci ?

Message par f-d-m »

ah mais avec dimTo ça fait ce que je veux ! c'est switchOn et switchOff qui n'ont pas fait ce que je voulais.

Pour le moment mon script fonctionne, je ne touche pas à la couleur. L'objectif de me lancer une alerte visuelle est atteint.

Je vais ouvrir un autre post à propos d'un autre script qui me trotte en tête.
https://easydomoticz.com/forum/viewtopi ... 10&t=12818
Dernière modification par Keros le 13 déc. 2022, 21:59, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
---
Bruxelles

RPi 3B, Domoticz 2024.7, SSD, dongle Zigbee Sonoff
IPX-800 V3
multiples Sonoff et similaires (Tasmota, ESPeasy), multiples appareils Zigbee
SMA Sunny Boy 3.6
Ksenia Lares 4.0
Compteur digital à la norme DSMR5 - interface ESP32
Répondre