Horloge chronomètre

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.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
TheRoth
Messages : 20
Inscription : 13 févr. 2019, 08:56

Horloge chronomètre

Message par TheRoth »

Hello à tous,

Je voulais savoir s'il était possible de compter le temps d'utilisation (dans un Virtual Sensor) d'un équipement... Une pompe, ou un moteur par exemple. Je n'ai pas trouvé d'horloge ou de chronomètre ? Que je ferais tourner avec un script si mon interrupteur est sur ON par exemple et le chronomètre se couperait quand il est sur Off. (pour avoir des stats d'utilisation jour/semaine/mois/année comme les autres device)

Avez vous une idée si c'est possible ?(Avec plug-in peut-être ?)

Merci pour vos idées et retour ^^
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Horloge chronomètre

Message par Keros »

Un comptage de temps : non pas directement. Tu peux avoir facilement un comptage de la puissance consommée (les widget le fond par défaut).
Maintenant, tu peux détourner une mesure de puissance en lui envoyant 1kw quand l'équipement fonctionne. Le nombre de kilowatt sera le nombre d'heures de fonctionnement. Il faudrait passer par un script et ce ne sera pas forcément simple.
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
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: Horloge chronomètre

Message par lost »

TheRoth a écrit : 11 avr. 2023, 07:11 Je voulais savoir s'il était possible de compter le temps d'utilisation (dans un Virtual Sensor) d'un équipement...
C'est pas forcément si simple. On pourrait penser, de prime abord, utiliser le last_update d'un équipement contrôlé par un switch dont on a l'état qui remonte à domoticz: Si le script déclenche pour ce switch sur un "Off", on additionne dans une variable utilisateur le temps d'usage.

Mais cela ne fonctionne que si on n'a pas plusieurs "Off" ou "On" qui se suivent. Hors Domoticz ne permet pas nativement d'éviter ce type de doublon (il faut dire qu'avec des trucs contrôlés par radio sans forcément un retour d'état, on peut se retrouver à dupliquer intentionnellement des commandes qui ne passent pas toujours du 1er coup). On n'a à ma connaissance même pas a possibilité de connaître l'état précédent le changement présent nativement, afin de filtrer simplement les doublons: Il faudrait l'avoir stocké dans une variable utilisateur en fait (ou aller le chercher dans la BDD).

La stratégie peut aussi dépendre de ce que l'on a a dispo (switch simple seulement? Combinant avec une mesure de W?)...
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Horloge chronomètre

Message par Jeff »

Voici une piste à tester !
Dans l'API Json ,il semble qu'il existe un compteur de temps
Counter
/json.htm?type=command&param=udevice&idx=IDX&svalue=COUNTER
IDX = id of your device (this number can be found in the devices tab in the column "IDX")
COUNTER = Integer of the overall total counter (Energy, Volume, Custom).

When there is a counter created, there is a possibility to change the units by clicking on "Change" at the utility tab.

Energy (reports kWh), give COUNTER value in Wh, integer
Energy Generated (reports kWh). give COUNTER value in Wh, integer
Gas (reports m3) , give COUNTER value in liter (1000 liter = 1 m³), integer
Water (reports m3), give COUNTER value in liter (1000 liter = 1 m³), integer
Counter (no unit)
Time (min?), seems to be obsolete, use Counter instead and use the time units as desired (eg Sec, min, hrs)
The counter will be treated with the divider which is defined in the parameters in the application settings (menu setup-settings, tab counters). For example if the counter is set to "Water" and the value is passed as liters, the divider must set to 1000 (as the unit is m3). The device displays 2 values:
The status is the overall total volume (or counter).
The volume (or counter) of the day (in the top right corner).
The today's volume (or counter) is calculated from the total volume (or counter).

Dans un script time, Il faudra sans doute au préalable récupérer la valeur et l'additionner de 1 ou 0 selon état de l'interrupteur
en récupérant la valeur dans ce style, ceci est un exemple pour un compteur P1 smart meter, faire de même pour un simple compteur

Code : Tout sélectionner

-- extraction des valeurs du compteur, (P1 smart meter, ex: "Data" : "17564059;9855288;0;0;517;0")
		usageHP, usageHC, x, y, usage, z = string.match(otherdevices_svalues[conso], "(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*)")
		usageHP = tonumber(usageHP)
		usageHC = tonumber(usageHC)
		commandArray['UpdateDevice'] = conso_id .. "|0|" .. usageHP .. ";" .. usageHC .. ";" .. x .. ";" .. y .. ";" .. 0 .. ";" .. z
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
hestia
Messages : 397
Inscription : 12 sept. 2018, 22:36

Re: Horloge chronomètre

Message par hestia »

bonjour,
pour le stockage du résultat j'utilise un incremental counter (custom)
Screenshot 2023-04-13 084547.png
Screenshot 2023-04-13 084547.png (20.58 Kio) Consulté 545 fois
Screenshot 2023-04-13 085626.png
Screenshot 2023-04-13 085626.png (163.27 Kio) Consulté 545 fois
ce sont des heures avec des centièmes d'heure et non des minutes.

Màj possible par DzVents

Code : Tout sélectionner

Counter, managed Counter, counter incremental
counter: Number
counterToday: Number. Today’s counter value.
updateCounter(value): Function. Overwrite current value for managed and standard counters; increment for incremental counters !!. Supports command options.
updateHistory( date, sValues ): Strings 3.1.3 function Managed counter only! Used to write values to short or long term storage.
Pour le calcul le point de Lost reste entier, il faut trouver un moyen de le faire en fonction du contexte et de la précision recherchée:
1/ Un trigger sur le On/Off + une différence de temps
2/ Exécuter le script toutes les minutes et faire + 1 si On
ou plus "précis":
# +1 si On et On avant
# 0 si Off et Off avant
# 0,5 dans les autres cas = moyenne
3/ Une combinaison des 2 avec durée plus variable (trigger + 5 minutes au cas où le trigger est raté)
TheRoth
Messages : 20
Inscription : 13 févr. 2019, 08:56

Re: Horloge chronomètre

Message par TheRoth »

Hello,

Je n'avais pas les notifications d'activées, je n'avais pas vu vos réponses ^^
Top merci, je vais essayer tout ca :)
Répondre