Page 3 sur 4

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

Publié : 12 sept. 2021, 15:32
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

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

Publié : 12 sept. 2021, 19:02
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é :?

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

Publié : 12 sept. 2021, 19:11
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...

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

Publié : 12 sept. 2021, 19:14
par Keros
Tu peux remettre ton script stp ?

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

Publié : 12 sept. 2021, 19:22
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 ----------------------------------------------------------
-------------------------------------------------------------------------------------------------------

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

Publié : 12 sept. 2021, 21:17
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).

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

Publié : 12 sept. 2021, 23:31
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...

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

Publié : 13 sept. 2021, 11:07
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.

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

Publié : 13 sept. 2021, 12:28
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.

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

Publié : 13 sept. 2021, 12:48
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