Page 3 sur 4

Re: Notification sms incluant la valeur d'une variable ?

Publié : 17 déc. 2014, 15:34
par Biocef
Au moins c'est clair :)

J'ai renommé mon capteur "Text" et ma variable "T_mini" pour coller au script.

Désolé de vous embêter encore mais ça ne marche pas, dans les log j'ai : Error: /home/pi/domoticz/scripts/lua/script_device_Tmini.lua:8: attempt to compare number with nil

Re: Notification sms incluant la valeur d'une variable ?

Publié : 17 déc. 2014, 17:56
par patrice
-en effet
-en effet
-en effet
:lol:

Re: Notification sms incluant la valeur d'une variable ?

Publié : 17 déc. 2014, 23:03
par Jihem
Bonjour
Bizarre...
Chez moi ça marche nickel je reçois le texto avec la temp mini de la nuit.
D'abord bien vérifier les noms des capteurs
ensuite chercher qui a la valeur nulle,en rajoutant en tête du script

Code : Tout sélectionner

commandArray = {}
        
       print("T_mini', type(uservariables['T_mini']))
        print('Text', type(otherdevices_temperature['Text']))
      
        ...................
return commandArray
contrôler dans les logs la valeur nil et lui en attribuer une par une url avec l'idx du capteur

Code : Tout sélectionner

http://192.168.1.82:8080/json.htm?type=command&param=udevice&idx=144&nvalue=0&svalue=19
puis un sudo service domoticz.sh restart.
je ne sais pas pourquoi certains capteurs n'ont pas de valeur (nil).


A suivre

Re: Notification sms incluant la valeur d'une variable ?

Publié : 22 déc. 2014, 16:35
par Biocef
Ah, j'ai trouvé d'où venait l'erreur !
Sur un site j'ai trouvé cette info : "On a une erreur nil quand on fait une comparaison avec une variable qui n'existe pas."

En fait j'avais créé une sonde de température virtuelle au lieu d'une variable ... :roll:

Du coup ça marche beaucoup mieux là !

Merci beaucoup, ça va bien me servir !

(Si jamais vous avez une solution pour recevoir un sms plutôt qu'un Prowl je suis preneur) ;)

Re: Notification sms incluant la valeur d'une variable ?

Publié : 22 déc. 2014, 17:30
par patrice
parfait pour ton erreur
pour les sms c'est ici http://easydomoticz.com/nouveau-service ... ee-mobile/

Re: Notification sms incluant la valeur d'une variable ?

Publié : 22 déc. 2014, 23:21
par Jihem
Bonsoir
Il y a un petit bug dans le script; à la fin la varible T_mini est réinitialisée pour le jour suivant (à 100°....au delà on aura d'autres soucis) mais comme cela a lieu à 7:30 (dans le script) en ce moment c'est avant le lever du soleil donc la variable n'est pas réinitialisée. On peut changer l'heure de l'envoi du sms ou mettre une condition de plus.
À voir.

Re: Notification sms incluant la valeur d'une variable ?

Publié : 23 déc. 2014, 08:46
par Jihem
Biocef a écrit :"On a une erreur nil quand on fait une comparaison avec une variable qui n'existe pas."
Effectivement un capteur virtuel est crée sans valeur (nil), on peut lui en donner une en envoyant par exemple:

Code : Tout sélectionner

une requette url
/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=valeur
ou bien en Lua
commandArray['UpdateDevice'] = IDX .. '|0|'.. tostring(valeur)
le widget du capteur indique bien la nouvelle valeur mais il faut relancer Domoticz pour qu'elle soit prise en compte dans le script Lua

Re: Notification sms incluant la valeur d'une variable ?

Publié : 27 déc. 2014, 14:57
par Biocef
Non, même avec la requête Json et un reboot ça restait sans valeur alors qu'avec une variable il n'y a pas le moindre soucis.

Par contre je reçois les notification 2 fois avec parfois des températures différentes, est-ce que ça peut venir de cette histoire de réinitialisation de la variable avant le lever du soleil ?

Image

Re: Notification sms incluant la valeur d'une variable ?

Publié : 27 déc. 2014, 16:47
par Jihem
Bonjour
Si la valeur du capteur change 2 fois dans la minute de l'envoi du texto,tu reçois 2 notifications. (If DeviceChange....)
Par contre il n'est pas normal qu'il y ait une grosse différence ( mesure aberrante?)
Je cherche une solution qui suspendrait le script jusqu'au soir.

Re: Notification sms incluant la valeur d'une variable ?

Publié : 29 déc. 2014, 12:29
par Jihem
Bonjour
Une petite modification du script qui corrige l'initialisation de la valeur mini et l'envoi de 2 notifications.
Il faut créer une variable utilisateur "Notif" qui va enregistrer que l'envoi de la notification a eu lieu. L'initialisation des variables se fait à midi.

Code : Tout sélectionner

-- T_ext: temperature exterieure
-- T_mini: uservariable qui stocke la température la plus basse
-- Notif: uservariable d'envoi de notification
commandArray = {}
       
 time = os.date("*t")

    if (devicechanged['Text'])
        then
            if (uservariables['T_mini'] > otherdevices_temperature['Text']) an$
              then
                uservariables['T_mini'] = otherdevices_temperature['Text']
                commandArray['Variable:T_mini']= tostring(uservariables["T_min$
            end

            if time.hour == 7  and uservariables['Notif'] == 1
               then
                  commandArray['SendNotification']='Temperature Mini#'..(strin$
                  commandArray['Variable:Notif']= "0"           --notification$
            end

            if time.hour == 12                                  --A  midi init$
              then
                commandArray['Variable:T_mini']= "100"
                commandArray['Variable:Notif']= "1"
            end


    end
return commandArray
A adapter selon les besoins.
(Il faut éviter de mettre l'heure d'envoi de la notification trop tôt car ce matin, chez moi, la température la plus basse de la nuit a eu lieu après l'envoi du texto.)