(Résolu)aide script Fuite Eau

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 <\>.
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

Re: aide script Fuite Eau

Message par totof60 »

Aprés un EventSystem: reset all device statuses...

Code : Tout sélectionner

 2023-02-02 18:08:42.036 Status: EventSystem: reset all device statuses...
...
2023-02-02 18:09:00.466 Status: LUA: otherdevices 429
2023-02-02 18:09:00.466 Status: LUA: otherdevices_svalues 429

...
2023-02-02 18:10:00.505 Status: LUA: otherdevices 18446744073709550818
2023-02-02 18:10:00.506 Status: LUA: otherdevices_svalues 18446744073709550818 
Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

Re: aide script Fuite Eau

Message par totof60 »

J'ai peut être une petite astuce pour solutionner le problème.

Avec un compteur incrémentale la remonté ne se fait pas correctement.
J'ai intercalé un compteur managé et ça semble mieux remonter pour le moment.

Je test et reviens pour confirmer
Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: aide script Fuite Eau

Message par lost »

totof60 a écrit : 01 févr. 2023, 19:49 Je vais explorer la piste du changement dans les versions.
Le pb que j'avais eu, pour ma part, date bien de qqpart entre v4.10717 et 2021.1 au vu du changelog de mon script... et, curieux hasard, le pb concernait aussi la MAJ d'un capteur virtuel (assez similaire à pas mal de lignes de ton script, mais chez moi colocalisé dans une fonction de MAJ: updateNum()) au vu d'un coup de grep dans mon répertoire de scripts lua:

Code : Tout sélectionner

script_device_SmartMeterPeak.lua:--   13/05/2021, Record integers for Domoticz 2021.1 using math.floor().
script_device_SmartMeterPeak.lua:    local cmd = string.format("%d|0|%d", otherdevices_idx[dev], math.floor(value1))
La fonction concernée:

Code : Tout sélectionner

--
-- Update virtual sensor
--
local function updateNum(dev, value1)
    local cmd = string.format("%d|0|%d", otherdevices_idx[dev], math.floor(value1))
    table.insert (commandArray, { ['UpdateDevice'] = cmd } )
end
L'encodage de la valeur value1 dans le string.format(), autrefois par défaut entière, était devenue flottant en raison d'un upgrade de l'interpréteur Lua inclus avec Domoticz de mémoire. Nécessitant l'ajout d'un appel à math.floor() autrefois inutile.

Note que dans ton cas, la première valeur pourrait ne rien avoir après la virgule et passer correctement. Puis après des calculs, peut-être simplement en raison d'erreurs d'arrondi, se retrouver "corrompue" en raison du simple encodage sauvage d'un int en float dans la chaîne de caractère.
totof60
Messages : 373
Inscription : 29 avr. 2016, 09:31

Re: aide script Fuite Eau

Message par totof60 »

J'ai essayé de mettre quelques math.floor par ci par là mais pas mieux.

Pour résoudre le problème j'ai mis un compteur managé.
Il est alimenté par un petit script DZvents:

Code : Tout sélectionner

--[[ 
	test eau (dzVents 3.1.8)
 ]]--
 
return {
	on = { timer = { "every minute" } },

	execute = function(domoticz, _)
		domoticz.devices(233).updateCounter( domoticz.devices(232).counterToday )
	end	
}
domo20235.jpg
domo20235.jpg (57.38 Kio) Consulté 719 fois

domo20234.jpg
domo20234.jpg (111.79 Kio) Consulté 719 fois
Et tout fonctionne à merveille en récupérant les infos de ce compteur managé.
Domoticz V2022.2
sous Buster, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: aide script Fuite Eau

Message par lost »

totof60 a écrit : 06 févr. 2023, 18:42 Pour résoudre le problème j'ai mis un compteur managé.
Ca me fait penser que j'avais tenté de changer un "utilisation/électrique" simple dans un autre script par un "électrique(utilisation+compteur)" avec la case cochée pour avoir les totaux calculés par domoticz et que ce type de compteur ne semblait pas prendre les mesures envoyées avec une string similaire a celle au dessus, avec juste un "; 0" final pour la partie totaux non gérée par le matériel.

Jamais réussi à le faire fonctionner. Si tu avais ce type de senseur combiné et non le simple, possible que tu sois tombé dans le même pb. Peut-être un bug dans la 2022.2/stable?
Répondre