Aller au contenu

Messages recommandés

Posté(e)

ça fonctionne  :)

Wtdiso.add(118, 30*60, "", {{"Global", "parleaussi", "la+lumière+extérieure+est+allumée"} , {"VirtualDevice", 216,1} , {"Time", "Sunset", "Sunrise"} , {"Repeat"}})

vu que c'était bien utile que la variable "parle" fasse démarrer le vd à  son changement d'état, j'ai créé une autre variable que pour ce script.

Maintenant, avec ce script et le Scheduler, je vais ne plus avoir d'autre scènes active.

 

 

merci Steven  ;)

  • Upvote 1
Posté(e)

Bonjour à  tous,

 

Je ne comprends pas comment faire parler le Karotz.

Comment il est reconnu par le script ?

 

PS : j'ai fait une variable globale "Karotz"

Posté(e)

Tout dépend si tu utilises OpenKarotz ou le firmware officiel ?

 

Sinon l'idée de base est de mettre le message souhaité dans une variable global puis activer un module virtuel qui va récupérer le contenu de cette variable pour faire parler le Karotz.

 

.. {"Global", "Karotz", "la lumière extérieure+est allumée"} , {"VirtualDevice", 216, 1}, ...
Posté(e)

Hello Steven,

 

J'utilise OpenKarotz

Je viens de comprendre pourquoi mon portail et garage n'est pas compris par le script :(

Galère !

 

En fait, j'utilise des micros modules connectés a mes contacts sec.

Lorsque les micros modules sont activés pour ouvrir un portail, ceux ci passe a "Off" au bout de 2 secondes.

Ce qui explique que le script voit toujours le device a OFF et ne fait rien ^^

 

Pour connaitre l'état de mes ouvrants j'utilise 2 variables.

 

etat_portail et etat_garage

qui m'indique respectivement "open" ou "close"

 

Ceci afin de toujours avoir une notification correct (portail ouvert ou fermé) sachant que ce type de micro module ne peuvent refermer les ouvrants que lorsqu'ils sont passé à  On puis a Off (pour pouvoir refaire un on derrière afin de fermer) ou, ouvrir.

 

A mon avis je dois utiliser {"Global", <variable>, <valeur>}

Posté(e)

Ne fonctionne toujours pas...

Wtdiso.add(108, 1*60, "Le portail est ouvert depuis plus de une minute", {{"Global", "etat_portail", "close"}, {"Scenario", 58}})

Ce coup çi je pige plus

Posté(e)

Finalement je pense que ce que le script voit mon module a OFF et rien ne peux se passer.

Est-il possible qu'il voit l'état de ma variable à"Open" de manière a ce que je puisse agir dessus (au lieu qu'il regarde l'état de micromodule) ?

Posté(e)

Ne fonctionne toujours pas...

Wtdiso.add(108, 1*60, "Le portail est ouvert depuis plus de une minute", {{"Global", "etat_portail", "close"}, {"Scenario", 58}})

Ce coup çi je pige plus

 

Cela veux dire :

 

Si le module 108 est activé depuis plus d'une minute :

  1. Mettre la variable globale "etat_portail" à  "close"
  2. Lancer le scénario 58
  3. Envoyer un push "Le portail est ouvert..."

 

Alors que toi tu souhaiterais que 

 

Si le module 108 est activé la variable global "etat_portail" est à  "open" depuis plus d'une minute :

  1. Lancer le scénario 58
  2. Envoyer un push "Le portail est ouvert..."

 

Si on est d'accord avec cela, je vais trouver une solution.

Posté(e)

Cela veux dire :

 

Si le module 108 est activé depuis plus d'une minute :

  1. Mettre la variable globale "etat_portail" à  "close"
  2. Lancer le scénario 58
  3. Envoyer un push "Le portail est ouvert..."

 

Alors que toi tu souhaiterais que 

 

Si le module 108 est activé la variable global "etat_portail" est à  "open" depuis plus d'une minute :

  1. Lancer le scénario 58
  2. Envoyer un push "Le portail est ouvert..."

 

Si on est d'accord avec cela, je vais trouver une solution.

C'est exactement ça (je viens d'essayer avec inverse mais ça ne va pas non plus car mon module est toujours a off quoi qu'il arrive, pret a passer a on pour fermer/ouvrir)

C'est vraiment une plaie ses micro module, je ne comprends pas pourquoi le comportement ne serait pas comme une simple ampoule punaise.

 

Donc pour répondre, oui c'est exactement ça, je me suis retrouver dans le brouillard, confusion et fonctionnement pour comprendre qu'avec ces modules il est impossible de faire fonctionner le script.

 

Le scénario 58 est en fait un scénario qui : Ferme le portail et envoi un push.

 

J'ai 4 scénarios 2 pour ouvrir, 2 pour fermer (garage et portail)

Chacun a une tempo qui remet le module a OFF, ainsi qu'un push en fonction de Fermé/Ouvert.

Chaque scénario renseigne la variable "open" ou "close" et c'est en fonction de ça que j'ai une vraie notification, sinon j'aurais toujours la même que le portail/garage soit fermé ou ouvert.

 

Ca a été une sacré galère a mettre en place, et tout repose la dessus, les minimotes etc.

 

Merci, tu vas me sauver.

J'aurais pu cherche longtemps pourquoi ça ne fonctionnait pas, mais quand le script a fonctionné sur une lampe, je me suis dit que mes micros modules était la cause du bleme.

 

EDIT : le probleme c'est que je vais recevoir 2 push du coup (mais bon c'est pas si grave).

1 push des mes scénarios et 1 de ton script.

Ou alors avec un parametre "nopush" ?

Posté(e)

Si tu mets le message à  vide "" au lieu de "Le portail.." je n'envoi pas de push ;)

 

Je code une solution a ta problématique et on test dans les 30 prochaines minutes.

Posté(e) (modifié)

bonjour, bonjour,

 

encore une question un peut spécial pour toi Steven  :D

j'ai une scène qui surveille mon frigo, après avoir eu un soucis avec, j'ai mis un wall plug pour m'avertir d’éventuel problèmes.

de temps en temps, le wall plug m'envoie une alerte comme quoi la conso est à  0w, apparemment, ça dur un 1/4 de seconde, c'est même pas retranscrit dans les courbes de la HC2.

dans ma scène, je ne sais pas faire que "si la conso passe en dessous de 3w plus de 60 secondes m'envoyer un push"

c'est la partie "plus de X secondes" que j'arrive pas à  traiter.

crois tu que ton script peux gérer ça?

 

voici ma scène  ;)

--[[
%% properties
54 valueSensor
%% globals
--]]
local dt = os.date();
local conso54 = fibaro:getValue(54, "valueSensor")

if (( tonumber(fibaro:getValue(54, "valueSensor")) < 3 ))
then
	 fibaro:call(217, "pressButton", "1"); --Pushover
     fibaro:call(53, "sendPush", tostring(dt).."-Attention: Le le frigo à  une consommation anormalement basse-"..conso54)
     fibaro:call(58, "sendPush", tostring(dt).."-Attention: Le le frigo à  une consommation anormalement basse-"..conso54)
     fibaro:call(62, "sendPush", tostring(dt).."-Attention: Le le frigo à  une consommation anormalement basse-"..conso54)  
	 fibaro:debug (fibaro:getValue(54, "valueSensor"))
     fibaro:setGlobal("parle", "Attention+le+frigo+à +une+consommation+anormalement+basse");
     --fibaro:call(216, "pressButton", "1");
elseif 
    ( tonumber(fibaro:getValue(54, "valueSensor")) > 450)
  then
    fibaro:call(217, "pressButton", "2"); --Pushover
    fibaro:call(53, "sendPush", tostring(dt).."-Attention: Le le frigo à  une consommation anormalement haute-"..conso54);
    fibaro:call(58, "sendPush", tostring(dt).."-Attention: Le le frigo à  une consommation anormalement haute-"..conso54);
    fibaro:call(62, "sendPush", tostring(dt).."-Attention: Le le frigo à  une consommation anormalement haute-"..conso54);  
	fibaro:debug (fibaro:getValue(54, "valueSensor"))
	fibaro:setGlobal("parle", "Attention+le+frigo+à +une+consommation+anormalement+haute");
    --fibaro:call(216, "pressButton", "1");
end
fibaro:debug (conso54)
fibaro:sleep(60*1000);
Modifié par Fredric
Posté(e)

Edit : code mise àjour en version 1.60

  • [Nouveauté] Ajout de déclencheur
    Avant, il n'était possible uniquement d'avoir comme déclencheur l'identifiant d'un périphérique et le système utilisait sont état (actif ou non). Il est maintenant possible d'avoir comme déclencheur une variable global ou la valeur d'un sensor
Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER]
Posté(e)

@Domodial

Si la variable globale "etat_portail" est à"open" plus d'une minute, on lance le scénario 58. Le script ne fera pas de push car le message est vide ""

-- Le portail est ouvert depuis plus de une minute
Wtdiso.add({"Global", "etat_portail", "open"}, 1*60, "", {{"Scenario", 58}})
@Frederic

Si la consommation du périphérique 54 est supérieur à450W = {"Sensor+", 54, 450} alors ...

Si la consommation du périphérique 54 est inférieur à3W = {"Sensor-", 54, 450} alors ...

local sarahVd = {"VirtualDevice", 216,1}
-- Si le frigo comsomme trop (plus de 450W), on l'arrête
Wtdiso.add({"Sensor+", 54, 450}, 5*60, "Attention: Le le frigo àune consommation anormalement haute > 450W", {{"VirtualDevice", 217, "1"},, {"Global", "parleaussi", "Attention+le+frigo+à+une+consommation+anormalement+haute"}, sarahVd}) 
-- Si le frigo ne comsomme pas assez (moins de 3W), on averti
Wtdiso.add({"Sensor-", 54, 3}, 5*60, "Attention: Le le frigo àune consommation anormalement basse < 3W", {{"Repeat"}, {"VirtualDevice", 217, "1"}, {"Global", "parleaussi", "Attention+le+frigo+à+une+consommation+anormalement+basse"}, sarahVd}) 
Tu pourrais aussi mettre un {"turnOff"} pour éteindre automatiquement le frigo si la consommation est supérieur à450W.
Posté(e)

Je suis sans voix !

Ca fonctionne à  la perfection !!!  :60:  :60:

Du premier coup !

 

Je rajoute même le push car dans ce cas, il est bon de savoir pourquoi les ouvrants se sont refermés (notifications que j'ai avec mes scénarios), mais cela n'indique pas pourquoi ? et bien parce que justement les ouvrants étaient ouverts depuis plus de xx minutes ! Donc les deux se cumule  à  la perfection !

 

Un ENORME MERCI !!

C'est LE script qui va rendre les gens heureux (là  moi je fais des bonds en ce moment), jamais vu un truc pareil, d'ailleurs c'est en train de m'ouvrir pleins d'idées  :P

 

Merci merci merci !

Posté(e)

Je viens de voir la ville de Steven  :)

Je suis originaire de St Julien en Genevois !

Ca fait 25 ans que ne suis retourné dans mon coins  :(

 

Cet année ma destination (en camping car) n'est pas dans le bas de la France, mais dès que nous redescendons je te MP, on se fera une teuf ;)

Posté(e)

Héhé, en effet, cela serait avec plaisir.

 

Je confirme, mon métier est Ingénieur de Développement. Codeur si on veut :)

Posté(e)
Edit : code mise àjour en version 1.70
  • [Nouveauté] Ajout du déclencheur "Value" et "Dead"
  • [Nouveauté] Ajout du actions "Email", "Label" et "WakeUp"
  • [Nouveauté] Ajout de variables dans le message : time, duration, value, date, seconds, name
Cettte version est compatible avec la version 1.30 et supérieur. Vous pouvez donc garder votre section [A VOUS DE JOUER]
  • Upvote 1
Posté(e)

Exemple des modifications de la v 1.70
 

- == Gestion du chauffage ==-
-- Il fait trop froid (moins de 20° depuis plus de 10mn, on démarre le chauffage
Wtdiso.add({"Value-", 8, 20}, 10*60, "Il fait froid au salon #value# à  #time#", {{"Scenario", 20}})
-- Il fait suffisament chaud (plus de 20° depuis plus de 10mn, on arrête le chauffage
Wtdiso.add({"Value+", 8, 20}, 10*60, "Il fait froid au salon #value# à  #time#", {{"Scenario", 21}})

- == Controle congélateur ==-
Wtdiso.add({"Value+", 8, 0}, 10*60, "Le congélateur est trop chaud #value#", {{"Repeat"}, {"Email",2}})

-== NÅ“ud mort ==-
Wtdiso.add({"Dead", 27}, 5*60, "Le périphérique #name# ne répond plus, tentative de réveil", {{"WakeUp", 27}})

@Frederic
#value# contient la dernière valeur du périphérique, dans le cas de ton frigo c'est très pratique

Wtdiso.add({"Sensor+", 54, 450}, 2*60, "Consommation excessive du frigo #value# > 450")

Les mots clés pouvant être contenu dans le message sont :

#time# L'heure de l'action HH:MM:ss
#duration# La durée en secondes
#value# La dernière valeur enregistrée (dépend) du type de demande et de périphérique
#date# La date de l'action dd/MM/AAAA
#seconds# Le nombre de secondes programmé
#name# Le nom du périphérique analysé

#value# :
Si l'action est {"Sensor+/-"} pour un périphérique avec relevé de consommation, "value" contiendra le dernier relevé de consommation.
Si l'action est {"Value+/-") sur un thermomètre, "value" contiendra la dernière température
Pour un dimmer "value" contient la valeur du dimmer.

Posté(e)

Je crois qu'il va falloir trouver un nouveau nom au projet car cela n'a plus rien àvoir avec un simple "avertisseur de porte ouverte".

J'attends vos propositions ;)

Posté(e)

Petite demande Steven, je n'ai pas encore testé le script car j'etais en déplacement pro mais j'ai dans l'idée de l'utiliser pour arrêter certains wallplug la journée pour couper la télé et autre, du coup faudrait que le script soit capable de rallumer ces wallplug lors que la variable absence serait neutraliser ou a la fin de la période d'utilisation du script si c'est planifier avec une plage horaire'

Cela serait possible? Milles merci

Posté(e)

C'est prévu :

-- Si la variable globale "abscence" est a oui depuis plus de 5 minutes, on éteint les périphérique 21, 31 et 41
Wtdiso.add({"Global", "abscence", "oui"}, 5*60, "", { {"turnOff",21},{"turnOff",31},{"turnOff",41} }) 

-- Si la variable globale "abscence" N?EST PAS a oui depuis plus de 1 secondes, on éteint les périphérique 21, 31 et 41
-- ATTENTION, si le script tourne toutes les 30 secondes, il se peut que cela prennent 30 secondes avant de tout allumer.
Wtdiso.add({"Global", "abscence", "oui"}, 1, "", { {"Inverse"}, {"turnOn",21},{"turnOn",31},{"turnOn",41} }) 
  • Upvote 1
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...