Creation d'un timer modifiable facilement
Re: Creation d'un timer modifiable facilement
Et si tu remplaçais ton compteur virtuel par un dimmer ...

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: Creation d'un timer modifiable facilement
mon père est un peu pénible et le dimmer va être en 0/100% et mon père veux des heures toutes simples (j'ai réussi a faire passer le dixième d'heure ... c'est déjà pas mal
Domoticz 2024.7 - Raspberry PI3+Pi0w2 - RFXtrx433E - Clé 3G - téléinfo - alhau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
Re: Creation d'un timer modifiable facilement
C'est vrai que l'affichage n'est pas le même. Malheureusement, je ne pense pas que l'on puisse spécifier l'unité.
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: Creation d'un timer modifiable facilement
dans le cas du compteur je suis bien :
Domoticz 2024.7 - Raspberry PI3+Pi0w2 - RFXtrx433E - Clé 3G - téléinfo - alhau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
Re: Creation d'un timer modifiable facilement
Bonsoir quady42quady42 a écrit : 06 juil. 2020, 13:28 Bon finalement je me répond à moi même...
J'ai créer un autre script en // du 1er pour indiquer le temps restant dans un compteur virtuel
Et désormais ça fonctionne bon je pense que ce même code pourrait être "condensé" mais bon on verra plus tardCode : Tout sélectionner
------------------- -------------------- -- Fonction différence de temps -- ------------------- -------------------- function timedifference (s) 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 = {} if otherdevices['Pompe onzion'] == 'On' then if(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '1h') then temps_en_heures = ((60-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 1h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 121 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '2h') then temps_en_heures = ((120-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 2h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '3h') then temps_en_heures = ((180-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 3h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '4h') then temps_en_heures = ((240-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 4h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '5h') then temps_en_heures = ((300-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 5h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '6h') then temps_en_heures = ((360-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 6h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '7h') then temps_en_heures = ((420-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 7h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '8h') then temps_en_heures = ((480-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 8h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '9h') then temps_en_heures = ((540-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 9h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '10h') then temps_en_heures = ((600-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 10h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '11h') then temps_en_heures = ((660-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondiarrondir(temps_en_heures,1) print ('temps restant sur 11h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == '12h') then temps_en_heures = ((720-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60) temps_en_heures_arrondi=arrondir(temps_en_heures,1) print ('temps restant sur 12h='..temps_en_heures_arrondi) -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi) elseif(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 and otherdevices['Temps de fonctionnement onzion inter'] == 'Off') then temps_en_heures = 0 print ('Pompe Onzion en Marche Forcée') -- Envoi de la valeur dans le compteur "idx125" -- commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures) end end return commandArray![]()
Quel type de compteur utilise tu ?
Merci
Cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;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 ..
Re: Creation d'un timer modifiable facilement
Tu crées un capteur virtuel dummy
Et ensuite tu choisies "compteur"
Une fois le capteur créé tu va dessus dans l'onglet mesure tu faits modifier et tu remplace energy par time
Et ensuite tu choisies "compteur"
Une fois le capteur créé tu va dessus dans l'onglet mesure tu faits modifier et tu remplace energy par time
Domoticz 2024.7 - Raspberry PI3+Pi0w2 - RFXtrx433E - Clé 3G - téléinfo - alhau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
Re: Creation d'un timer modifiable facilement
Re,
C'est bien ce que j'ai fait
Mon compteur affiche des points d'interrogation .. J'ai du faire une erreur en adaptant les noms
Merci
B.
C'est bien ce que j'ai fait
Mon compteur affiche des points d'interrogation .. J'ai du faire une erreur en adaptant les noms
Merci
B.
2024.6 PC Windows10 ; 2ème DEBIAN 10;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 ..
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Creation d'un timer modifiable facilement
Tu dois pouvoir simplifier ton code de cette manière, en conservant évidement tes fonctions :quady42 a écrit : 06 juil. 2020, 13:28
Et désormais ça fonctionne bon je pense que ce même code pourrait être "condensé" mais bon on verra plus tard![]()
Le principe est de boucler sur un tableau comportant les valeurs de 1 à 12, afin de ne pas avoir 12 conditions dans ton code.
Code : Tout sélectionner
local maTableHeure = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
commandArray = {}
if otherdevices['Pompe onzion'] == 'On' then
if(timedifference(otherdevices_lastupdate['Pompe onzion']) > 0 then
for key, valeur in pairs(maTableHeure) do
if otherdevices['Temps de fonctionnement onzion inter'] == valeur..'h' then
temps_en_heures = (((valeur * 60)-(timedifference(otherdevices_lastupdate['Pompe onzion'])/60))/60)
temps_en_heures_arrondi=arrondir(temps_en_heures,1)
print ('temps restant sur ..'valeur..' h='..temps_en_heures_arrondi)
-- Envoi de la valeur dans le compteur "idx125" --
commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures_arrondi)
elseif otherdevices['Temps de fonctionnement onzion inter'] == 'Off' then
temps_en_heures = 0
print ('Pompe Onzion en Marche Forcée')
-- Envoi de la valeur dans le compteur "idx125" --
commandArray['UpdateDevice'] = 125 .. '|0|' .. tostring(temps_en_heures)
end
end
end
end
return commandArrayPi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Creation d'un timer modifiable facilement
Bonjour,
Effectivement le code est largement réduit...
Merci pour ta solution, je regarderai dans la semaine lorsque je serai rentré à la maison...
Effectivement le code est largement réduit...
Merci pour ta solution, je regarderai dans la semaine lorsque je serai rentré à la maison...
Domoticz 2024.7 - Raspberry PI3+Pi0w2 - RFXtrx433E - Clé 3G - téléinfo - alhau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau
SOMFY RTS/IO - wemos D1 mini ESPeasy et Tasmota
Sonoff sous Tasmota/EspEasy : basic - S20 - Dual R2 - Pro 4 CH - Pro 4 Ch R2
Zigbee2MQTT: Températures - Incendie - fuite d'eau