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 ^^
Horloge chronomètre
Re: Horloge chronomètre
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.
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
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: Horloge chronomètre
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.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...
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?)...
Re: Horloge chronomètre
Voici une piste à tester !
Dans l'API Json ,il semble qu'il existe un compteur de temps
Counter
/json.htm?type=command¶m=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
Dans l'API Json ,il semble qu'il existe un compteur de temps
Counter
/json.htm?type=command¶m=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 .. ";" .. zVersion: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
Re: Horloge chronomètre
bonjour,
pour le stockage du résultat j'utilise un incremental counter (custom) ce sont des heures avec des centièmes d'heure et non des minutes.
Màj possible par DzVents
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é)
pour le stockage du résultat j'utilise un incremental counter (custom) 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.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é)
Re: Horloge chronomètre
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
Je n'avais pas les notifications d'activées, je n'avais pas vu vos réponses ^^
Top merci, je vais essayer tout ca