Erreurs Compteurs Incrementiels 2020-1

Posez ici vos questions d'utilisation, de configuration de Domoticz, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramètrage Concernant le Raspberry ou les scripts de toute nature des forums spécifiques sont ouverts
Répondre
balajol
Messages : 777
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Erreurs Compteurs Incrementiels 2020-1

Message par balajol »

Bonjour,
J'ai une erreur sur mes compteurs depuis la mise à jour, évoqué également sur le forum Anglais:
https://www.domoticz.com/forum/viewtopi ... er#p241023
la suite demain :?
Cdt
Bertrand
2020.2 (build 12106) PC Windows10 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..

balajol
Messages : 777
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Re: Erreurs Compteurs Incrementiels 2020-1

Message par balajol »

Bonsoir,
A priori pas de retour sur le Forum Anglais :?
Suis je le seul concerné côté Français ?

Pour aller plus loin, j'ai 3 compteurs alimentés par des scripts lua qui fonctionnaient depuis plusieurs années.
Ils sont devenus fous après passage en 2020-1
De quelques centaines de minutes relevées je suis passé à plusieurs Millions par jour sur les 3 compteurs.
J'ai essayé de supprimer ces compteurs, les recréer en modifiant le nom, un autre script pour alimenté la variable etc..
Cette variable utilisateur de type Decimal semble se renseigner normalement à chaque minute.
Je n'ai pas trouvé de rapport fixe entre la durée réelle et la valeur affichée par le compteur.

A l'écoute de toute suggestion bienveillante ;)
Par avance Merci
Cdt
Bertrand

Un des scripts/

Code : Tout sélectionner

[/
 -- Ce script permet de remonter la durée de fonctionnement d'un dispositif dans un capteur virtuel de type "Counter Incremental"
 
-- Pré requit, création variable utilisateur: "Total_Compteur_Chaud_Solaire", type décimal, valeur départ :0    et un counter , offset:0, type Temps,  Mn


 --------------------------------Durée fonctionnement  Chaudiere avec Appoint solaire par le ballon tampon
 ------ Variables à éditer ------
 --------------------------------
 local switch = 'Chaudiere_Appoint_Solaire'      -- Nom de l'interrupteur  dans Domoticz
 local counter = otherdevices_idx['Duree_App_Solaire_Chaud']--local counter = xxxx -- Numéro idx du Counter Incremental dans Domoticz (Duree-Marche-Ventilation,  Counter  à créer, offset: 0  Temps,  Mn)
 local current_date = (os.date("%d/%m/%Y"))      -- Date courante
 local current_heure = (os.date("%X"))         -- Heure courante
 --------------------------------
 -- Fin des variables à éditer --
 --------------------------------


 -------------------
 -- Fonction time --
 -------------------
 time = os.date("*t")  

function timedifference(d)
   s = otherdevices_lastupdate[d]
   year = string.sub(s, 1, 4)
   month = string.sub(s, 6, 7)
   day = string.sub(s, 9, 10)
   hour = string.sub(s, 12, 13)
   minutes = string.sub(s, 15, 16)
   seconds = string.sub(s, 18, 19)
   t1 = os.time()
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
   return difference
end

 ------------------- --------------------
 -- Fonction arrondir à deux décimales --
 ------------------- --------------------
  -- Le chiffre"x" (dec or x) correspond au nombre de décimales à prendre en compte dans le resultat
   function arrondir(num, dec)
      if num == 0 then
      return 0
         else
            local mult = 10^(dec or 2)
            return math.floor(num * mult + 0.5) / mult
       end
   end

commandArray = {}

-----------------------------------------------------------------------------------------------------
--------------------Calcul du temps de fonctionnement de la chaudiere avec appoint solaire -------------------------------
-----------------------------------------------------------------------------------------------------

   -- Si "Chaudiere_Appoint_Solaire"  ON incrémentation de la variable Domoticz "Total_Compteur_Chaud_Solaire"--
   if (otherdevices[switch]=='On') then
   commandArray['Variable:Total_Compteur_Chaud_Solaire']= tostring(uservariables["Total_Compteur_Chaud_Solaire"] +1)
   end
   
   -- Envoi de la variable valeur "Total_Compteur_Chaud_Solaire" dans le Custom Counter "Total_Compteur_Chaud_Solaire" --
   Valeur_Compteur = tostring(uservariables["Total_Compteur_Chaud_Solaire"])

   -- Envoi de la valeur dans le compteur "counter" --
   commandArray['UpdateDevice'] = counter .. '|0|' .. tostring(Valeur_Compteur)
   
   -- Envoi des informations dans le LOG si "Chaudiere_Appoint_Solaire" = ON --   
   if (otherdevices[switch]=='On') then
      print("")
      print("Cumul du temps de fonctionnement de la chaudiere avec appoint solaire "..Valeur_Compteur.." Minutes".."  //  "..math.floor((Valeur_Compteur/60)).. " Heures")
      print("")
      commandArray['OpenURL'] = 'http://192.168.0.13:8091/json.htm?type=command&param=udevice&idx=1339&nvalue=0&svalue='..math.floor((Valeur_Compteur/60))..'' --1339:DUMMY Virtuel	Cumul_Marche_Solaire_Chaud_Heures General Text
   end  
return commandArray
code]

Le résultat après passage en 2020-1:

[attachment=0]Graph_Appoint_sol.JPG[/attachment]
Fichiers joints
Graph_Appoint_sol.JPG
Graph_Appoint_sol.JPG (81.69 Kio) Vu 3032 fois
2020.2 (build 12106) PC Windows10 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..

aleph0
Messages : 308
Enregistré le : 27 avr. 2016, 08:06
Localisation : Hérault (34)

Re: Erreurs Compteurs Incrementiels 2020-1

Message par aleph0 »

J'ai eu le même problème avec une bêta récente. Le comportement des compteurs a été changé :
Avant, compteur normal ou compteur incrémental, il fallait calculer le total par script et envoyer le total via le commandArray
Maintenant, pour le compteur incrémental, il faut n'envoyer que la valeur a ajouter aux compteur, et le compteur l'ajoute lui-même a la valeur précédente. Pour les compteurs non incrémental, ça reste comme avant : on envoi au compteur la valeur totale du compteur

Envoyé de mon moto g(6) en utilisant Tapatalk


balajol
Messages : 777
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Re: Erreurs Compteurs Incrementiels 2020-1

Message par balajol »

Bonsoir aleph0,
Merci de ton retour et de la piste donnée.
Je n'ai aucune idée de la syntaxe, je vais "gratter" la chose.
Si quelqu'un à l'aise avec le Lua peut travailler le script ci dessus, il m'évitera surement une nuit blanche :cry:
par avance Merci
Cdt
Bertrand
2020.2 (build 12106) PC Windows10 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..

aleph0
Messages : 308
Enregistré le : 27 avr. 2016, 08:06
Localisation : Hérault (34)

Re: Erreurs Compteurs Incrementiels 2020-1

Message par aleph0 »

J'ai lu le script en diagonale, mais a priori il te suffirait de remplacer
commandArray['UpdateDevice'] = counter .. '|0|' .. tostring(Valeur_Compteur)
Par
commandArray['UpdateDevice'] = counter .. '|0|1'

Envoyé de mon moto g(6) en utilisant Tapatalk


balajol
Messages : 777
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Re: Erreurs Compteurs Incrementiels 2020-1

Message par balajol »

Re,
De Nouveau Merci,
Les compteurs sont renseignés sans passer par une variable, je vais laisser 2 Scripts différents en test.
Il me restera le formatage pour afficher les heures à partir des Compteurs en mn . (Une autre paire de manche pour moi )
Cdt
Bertrand
2020.2 (build 12106) PC Windows10 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..

balajol
Messages : 777
Enregistré le : 13 nov. 2015, 18:54
Localisation : 62

Re: Erreurs Compteurs Incrementiels 2020-1

Message par balajol »

Bonjour aleph0 et tous,
Le script fonctionne bien depuis. j'ai gardé la variable utilisateur du script Précédent pour avoir la durée totale en heures dans un dispositif text.
Petit bémol dans la version 2020 et cette nouvelle utilisation du compteur incrémental, si il n'y a pas de donnée ajoutée dans le délais "Capteur Expiré" le bandeau passe au rouge.
J'ai résolu le problème, pour ma part en ajoutant 0 au compteur à 00 h : 1 mn (à 0 heure le compteur journalier passe normalement à 0, le fait de lui injecter cette valeur nulle supprime le délais capteur expiré)
Cdt
Bertrand
2020.2 (build 12106) PC Windows10 (Elite book); DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..

Répondre