DZVENTS : Electrovanne + capteur de pluie fait maison...

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 <\>.
inter-rupteur
Messages : 25
Inscription : 08 oct. 2020, 08:24

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par inter-rupteur »

Salut Keros,

merci pour ces informations, je vais les appliquer à mon script juste après ! ;)

Par contre, je ne comprends pas un truc. Quand je réinitialise les data persistent, pour repartir de zéro, il y a une différence d' 1h entre l'history et l'heure réelle ?? Voici les logs :
2021-09-12 15:28:00.203 Status: dzVents: Info: ------ Start internal script: Arrosages-MultiTemps:, trigger: "every 1 minutes"
2021-09-12 15:28:00.204 Status: dzVents: -----------------------------------------------
2021-09-12 15:28:00.204 Status: dzVents: MD-WATER-01
2021-09-12 15:28:00.204 Status: dzVents: Last value history : Off
2021-09-12 15:28:00.204 Status: dzVents: Last date history : 2021-09-12
2021-09-12 15:28:00.204 Status: dzVents: Last hour history : 14:28:00
2021-09-12 15:28:00.204 Status: dzVents: ******************************
2021-09-12 15:28:00.204 Status: dzVents: Nous sommes le : 2021-09-12
2021-09-12 15:28:00.204 Status: dzVents: Il est : 15:28:00
2021-09-12 15:28:00.205 Status: dzVents: -----------------------------------------------
2021-09-12 15:28:00.205 Status: dzVents: Info: Pas de nouvelle value "On" pour le moment.
2021-09-12 15:28:00.205 Status: dzVents: -----------------------------------------------
2021-09-12 15:28:00.205 Status: dzVents: Info: ------ Finished Arrosages-MultiTemps
A ton avis, à quoi c'est dû ?

Inter-Rupteur
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par Keros »

Je savais que la fonction de temps de l'historique existait, mais je ne l'ai jamais utilisée.
Mon intuition : ce serait un souci de décalage horaire, mais si c'est le cas, ça m'étonne que ce n'ai pas été déjà vu et solutionné :?
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
inter-rupteur
Messages : 25
Inscription : 08 oct. 2020, 08:24

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par inter-rupteur »

Je ne vois pas où pourrait-être le décalage (si c'est ca...) car au niveau de Domoticz, il est bien à l'heure (c'est le 15h28), au niveau du serveur qui l'héberge c'est identique également... Par contre au niveau de l'history, je ne sais pas comment est géré le temps, pas beaucoup d'infos la dessus...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par Keros »

Tu peux remettre ton script stp ?
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
inter-rupteur
Messages : 25
Inscription : 08 oct. 2020, 08:24

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par inter-rupteur »

le voici :

Code : Tout sélectionner

local OnTimer1 = 'at 21:00'
local OnTimer2 = 'every 3 minutes' 

return {
    active = true,
    on = 
          {
               timer = {OnTimer1,OnTimer2},
               
               devices = {'MD-WATER-01'},
        },
		       data = { valon = { history = true, maxItems = 20 }},
		       
execute = function(domoticz, item)


-------------------------------------------------------------------------------------------------------
------- Check si l'history est déjà rempli au moins avec une valeur (off : valeur par defaut) --------- 
---------    => sinon erreur d'index "NIL value" car l'history persistent data est vide ---------------
        
        if domoticz.data.valon.getOldest() == nil then
          domoticz.data.valon.add('Off')
        end
-------------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------------------------
---------------------------------- Variables ----------------------------------------------------------
-------------------------------------------------------------------------------------------------------

                local emailNotification = 'dczmonitor@gmail.com'
                
                local nowdate = domoticz.time.rawDate
                local nowhour = domoticz.time.rawTime                
                local valhistorylat = domoticz.data.valon.getLatest()
                local hisdatelat = valhistorylat.time.rawDate
                local hishourlat = valhistorylat.time.rawTime

-------------------------------------------------------------------------------------------------------                
-------------------------------- Fin Variables --------------------------------------------------------
-------------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------------------------
------------------------------------ Print ------------------------------------------------------------
-------------------------------------------------------------------------------------------------------

            if (item.trigger == OnTimer2) then  
                print('-----------------------------------------------')
              --print('hour now : ' ..chckbasehour)                 
                print('MD-WATER-01')
                print('Last value history : ' .. valhistorylat.data)
                print('Last date history : ' .. hisdatelat)
                print('Last hour history : ' .. hishourlat)
                print('******************************')
                print('Nous sommes le : ' .. nowdate)
                print('Il est : ' .. nowhour)
                print('-----------------------------------------------')
                --print('Reset des values : OK')
                --domoticz.data.valon.reset()
                --print('-----------------------------------------------')
            end
            
-------------------------------------------------------------------------------------------------------
--------------------------------- Fin Print -----------------------------------------------------------
-------------------------------------------------------------------------------------------------------            

-------------------------------------------------------------------------------------------------------
----------------------------------- Code --------------------------------------------------------------
-------------------------------------------------------------------------------------------------------

            if (item.state == 'On') then
                                
                domoticz.data.valon.add(item.state)
                domoticz.log('La value "On" a été ajouté dans l\'history du device !')
                domoticz.log('Le : ' .. nowdate)
                domoticz.email('Pluie en cours : MD-WATER-01 actif', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Il est en train de pleuvoir... <br>MD-WATER-01 a envoyé la value "On".', emailNotification)
           else
                domoticz.log('Pas de nouvelle value "On" pour le moment.')    
           
           end

-------------------------------------------------------------------------------------------------------
             
             if (item.trigger == OnTimer1) then
                 
                if (valhistorylat.data == "On") and (hisdatelat == nowdate)  then   
                    domoticz.log('La pluie est tombée aujourd\'hui, MD-WATER-01 a été actif !')
                    domoticz.email('[ARO-01] - OFF cause Pluie', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', emailNotification)
                    domoticz.email('[ARO-02] - OFF cause Pluie', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Journée de pluie...', emailNotification)
                    --domoticz.data.valon.reset()
                else
                    
                    if  (domoticz.devices('20.Electrovanne - LOW (ARO-01)').state=='Off') then

                         domoticz.log('[MD-WATER-01 => ARO-01] - Pas de pluie aujourd\'hui : déclenchement de l\'arrosage [ARO-01] - LOW.')
                         domoticz.email('Start Arrosage 1 (low)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne low a 21:00 heures.', emailNotification)
                         domoticz.devices('20.Electrovanne - LOW (ARO-01)').switchOn().forMin(3)
                    end
                    
                    if  (domoticz.devices('21.Electrovanne - HIGH (ARO-02)').state=='Off') then

                         domoticz.log('[MD-WATER-01 => ARO-02] - Pas de pluie aujourd\'hui : déclenchement de l\'arrosage [ARO-02] - HIGH.')
                         domoticz.email('Start Arrosage 2 (high)', 'Date : ' .. nowdate .. '<br>Heure : ' .. nowhour .. '<br>Start Electrovanne high a 21:00 heures.', emailNotification)
                         domoticz.devices('21.Electrovanne - HIGH (ARO-02)').switchOn().forMin(5)
                    end
                end
            end
                print('-----------------------------------------------')

            
end

}

-------------------------------------------------------------------------------------------------------
----------------------------------- Fin Code ----------------------------------------------------------
-------------------------------------------------------------------------------------------------------
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par Keros »

Je ne vois pas pourquoi il y a ce décalage d'une heure.

Je pense que tu peux le contourner en utilisant la fonction .time.minutesAgo > 1260 (pour un déclenchement à 21h : 60x21=1260).
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
inter-rupteur
Messages : 25
Inscription : 08 oct. 2020, 08:24

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par inter-rupteur »

J'ai pas de souci avec le déclenchement à 21h car c'est le trigger qui est utilisé.

C'est surtout pour les logs history, je souhaitais que l'heure d'enregistrement soit la même que celle qui est enregistré dans l'history, mais apparemment après de nouveaux tests, on a toujours cette heure de décalage...
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par boum »

Pure conjecture de ma part, mais je pense que le timestamp des données persistantes est stocké en CET : sans décalage heure d'été / heure d'hiver pour des raisons évidentes (comment trier les données lors du changement d'heure ?).
L'heure du système est lui en CEST, et on a donc une heure de décalage en ce moment.
Pour vérifier, à partir de dzVents 3.0.8, il y a isdst sur les objets Time.
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par Keros »

@ boum, c'est aussi l'idée que j'avais :?

@ inter-rupteur, je ne parlais pas de changer le trigger.
Actuellement tu regardes l'heure de la dernière pluie (le décalage est impactant) mais si tu regardes la durée écoulée depuis la dernière pluie, tu ne devrais pas être impacter par le décalage.
Grosso modo, si a 21h la dernière pluie était il y a 22h, c'est qu'il n'a pas plus pendant la journée.
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
inter-rupteur
Messages : 25
Inscription : 08 oct. 2020, 08:24

Re: DZVENTS : Electrovanne + capteur de pluie fait maison...

Message par inter-rupteur »

@boum, merci pour ces explications.

@Keros, oui oui, tout à fait, cela n'impacte en rien le script. C'était juste que je m'étais poser la question de ce décalage dans les logs. Maintenant que je le sais, je l'ai indiqué dans le script en commentaire (comme ca, si une personne le récupère, il saura pourquoi...)

Merci à vous pour votre aide !! ;)

Inter-Rupteur
Répondre