Forum eedomus http://forum.eedomus.fr/ |
|
Boutons complément de fioul http://forum.eedomus.fr/viewtopic.php?f=18&t=12341 |
Page 1 sur 1 |
Auteur: | Jyves [ 14 Août 2024 16:16 ] |
Sujet du message: | Boutons complément de fioul |
Bonjour à tous ! Ça fait quelques jours que je me fais des noeuds au cerveau. J’ai réussi à faire un compteur de consommation de fioul (quotidien, mensuel, annuel, et fioul restant). Maintenant, ce que je souhaite faire, c’est créer un actionneur avec 4 boutons. +500, +1000, +1500, et cuve remplie 2000l). Mais comme je suis nul en programmation, j’ai besoin de conseils. Merci d’avance ! |
Auteur: | opa95 [ 14 Août 2024 18:59 ] |
Sujet du message: | Re: Boutons complément de fioul |
Bonjour Jyves
Il faut que tu crées un device (calculator) "Cuve" de code xxxxxxxx et que tu modifies tes anciens "calculator" en remplaçant dans ta formule 2000-device(3310001) par device(xxxxxxxx)-device(3310001). Ensuite il faut gérer le remplissage de "cuve" en lui créant des valeurs 0, 500, 1000,1500, 2000 a chaque valeur tu peux affecter la commande http://localhost/script/?exec=calculato ... (xxxxxxxxx)+500 (si ça plante avec le symbole "+" essaie de le remplacer par "%2b". si tu avais besoin de plusieurs fois 500 à plusieurs mois d'intervalle, il faut repasser par la valeur 0 pour laquelle tu ne mets rien dans la commande. Si tu veux que les commandes aient l'air plus neutres, tu pourrait adjoindre une règle qui remet automatiquement à 0 l'etat. Peut-etre faudrait-il deux devices, un qui garde en mémoire l'état de la cuve et un qui assure le remplissage. Il faudrait réfléchir plus longuement pour avoir la bonne solution. Tiens nous au courant (éventuellement en mp si ça devient trop technique) |
Auteur: | opa95 [ 14 Août 2024 20:14 ] |
Sujet du message: | Re: Boutons complément de fioul |
Bonsoir Jyves Pour avancer, il faut un peu plus d'informations sur ton dispositif. De quelles données disposes-tu pour tes consommations : un débitmètre de consommation ou bien un totalisateur qui indique le nombre de litres consommés depuis l'instant initial? Comment as-tu obtenu tes diverses valeurs de consommation (annuelle, mensuelle,...)? |
Auteur: | Jyves [ 14 Août 2024 20:43 ] | ||
Sujet du message: | Re: Boutons complément de fioul | ||
Merci du temps que tu passes pour mon problème. Pour obtenir ces données, j’ai installé une pince amperemetrique sur la phase de la pompe à fioul. Dès qu’elle est active, j’ai un compteur de temps qui s’active. Ensuite je fais un calcul pour convertir les minutes en litres.
|
Auteur: | Jyves [ 15 Août 2024 01:28 ] |
Sujet du message: | Re: Boutons complément de fioul |
J'ai essayé en créant un actionneur http avec les http://localhost/script/?exec=calculato ... (xxxxxxxxx)+500 http://localhost/script/?exec=calculato ... (xxxxxxxxx)+1000 http://localhost/script/?exec=calculato ... (xxxxxxxxx)+1500 http://localhost/script/?exec=calculato ... (xxxxxxxxx)+2000 Le problème, c'est que le calculateur lit les valeurs brut du device actionneur Ou alors j'ai mal compris. |
Auteur: | opa95 [ 15 Août 2024 15:54 ] |
Sujet du message: | Re: Boutons complément de fioul |
Bonjour Jyves
J'ai réalisé quelque chose qui marche. J'ai crée un capteur http "Cuve", un actionneur http "Remplissage" et une règle pour le remplissage. J'ai pris une version légèrement modifiée de "calculator.php" qui est totalement compatible avec celle du store (correction d'un bug) et création d'une variable ('last') et de 2 opérateurs ('<' et '>'). Il suffit de le charger à la place de la version actuelle. Pour la "cuve" : l'appel est inchangé last contient la dernière valeur du capteur (contenu de la cuve ou de n'importe calcul précédent) : le XPATH sera donc last-device(xxxx) au lieu de 2000-device(xxxx). Pour le remplissage, on crée un actionneur http V1 : id_cuve V2 : contenance max de la cuve (2000) On crée les valeurs admissibles avec les commandes (attention dans la chaine, remplacer "+" par "%2b", eedomus maltraite le "+") Les commandes "Vide" et "Plein" imposent les valeurs 0 ou max (2000) Les commandes 500,1000,1500 ajoutent les valeurs correspondantes (valeur limite du contenu 2000) La commande 0 n'est pas activable et est automatiquement affichée après un remplissage pour éviter une double ration en cas d'erreur. Pour initialiser à une valeur quelconque, il suffit de remplir VAR3 avec la valeur voulue, de sauver et de cliquer sur Init (on peut cacher Init, en temps normal pour éviter les maneuvres intempestives). Ensuite, on crée une règle pour le remplissage Pour la gestion de ta cuve, il est possible que tu observe des dérives entre ta consommation estimée et la consommation réelle car tu ne disposes pas d'un totalisateur réel, mais tu estimes les volumes par le produit du débit instantané par le temps estimé : tout dépend donc de la précision du débit et des durées réelles. Si les durées réelles sont courtes, on peut accumuler les erreurs. Dans ce cas, tu peux essayer d'intégrer la consommation en utilisant par exemple : "Fonction intégrale d'un capteur" du STORE (rubrique utilitaire Web) de Merguez07 & dommarion. Dis-moi s'il y a un problème Actionneur Valeurs Actionneur Règle Actionneur |
Auteur: | opa95 [ 15 Août 2024 16:10 ] |
Sujet du message: | Re: Boutons complément de fioul |
(suite) Dans les valeurs de l'actionneur, il faut remplacer calculator-init.php par calculator.php : oubli de modif après le test |
Auteur: | opa95 [ 15 Août 2024 18:50 ] |
Sujet du message: | Re: Boutons complément de fioul |
(fin?) Décidément, les JO m'ont fatigués ou distrait : il manque la source du script "calculator.php"
|
Auteur: | Jyves [ 15 Août 2024 19:19 ] |
Sujet du message: | Re: Boutons complément de fioul |
Wahou !!! Merci merci merci ! Je teste ça cette nuit. Ma seule question pour le moment: comment remplacer le script ? Si c’est facile à trouver sur internet, t’embête pas à répondre, je vais chercher cette nuit. Encore merci. Je te tiens au courant si ça marche pour moi. |
Auteur: | opa95 [ 15 Août 2024 20:06 ] |
Sujet du message: | Re: Boutons complément de fioul |
Bonsoir Jyves
Ça m'a bien amusé Tu peux sélectionner le device http que tu as créé ou copié pour "calculatrice.php" et cliquer sur le nom pour ouvrir la fenêtre du device. Tu peux alors cliquer sur "editer", puis remplacer tout le contenu de la fenêtre par le nouveau texte. Tu cliques ensuite sur enregistrer et c'est bon. Si tu veux modifier des instructions, je te recommande de copier le contenu entier quelque part car il n'est pas impossible que le transfert se passe mal et tu auras perdu tes motifs. Généralement je préfère utiliser mon éditeur php externe pour modifier un script et le transférer ensuite. Pour faire une modification de la source, sans ouvrir la fenêtre du device, il faut sauver la source sous le nom "calculator.php", puis ouvrir la fenêtre http://ip_box/script/ Ensuite tu cliques sur "parcourir", sélectionnes le fichier à copier et l'envoies. Le programme est vérifié sur le site externe d'eedomus, puis transféré sur ta box. Il se peut que la box demande une connexion, tu acceptes et tu peux redemander la page de script (il ne devrait plus redemander la connexion pendant longtemps). Si le script utilise des variables internes que l'on veut effacer, il faut effacer l'ancien script avant de charger le nouveau. |
Auteur: | Jyves [ 16 Août 2024 02:50 ] |
Sujet du message: | Re: Boutons complément de fioul |
Je pense avoir quasiment tout bon, mais ça ne fonctionne pas. Ca me retourne une erreur "valeur non numérique", et en détail: <result>-3.945</result> (-1 -la conso depuis la mise en place du compteur 2.945) Peux-tu me faire un screen de la configuration du capteur http "cuve" ? Je pense merder à ce niveau. Le device 3311981 étant l'actionneur remplissage Le device 3310001 étant le totaliseur |
Auteur: | opa95 [ 16 Août 2024 08:38 ] |
Sujet du message: | Re: Boutons complément de fioul |
Bonjour Jyves
Le XPATH ne change pas : /result (comme sur l'original) VAR1 : Formule de calcul (comme sur l'original) Dans ton cas: last-device(3310001) soit : ancienne valeur-valeur prélevée Le Remplissage n'est actif que quand on agit sur le bouton et son fonctionnement est réglé par la règle. Valeurs de remplissage : URL : http://localhost/script/?exec=calculator.php Paramètres : &id=[VAR1]&formula=(last%2b[RAW_VALUE])<[VAR2] VAR1 contient l'id de la cuve, envoyée au script "calculator.php" pour faire croire que la commande vient de la cuve la formule envoyée est (last+[RAW_VALUE])<2000 autrement dit : min( "ancien contenu" + "valeur associée au bouton",2000) donc valeur totale toujours inférieure à 2000 VAR2 contient la contenance de la cuve (2000), pour limiter la valeur maximale En fait les parenthèses de la formule ne sont pas nécessaires : formula=last%2b[RAW_VALUE]<[VAR2] fonctionne car l'opération "+" (%2b) est effectuée avant de faire l'opération "<" formula=1000+1500<2000 -> 2000 équivalent à (1000+1500)<2000 -> min(2500,2000) -> 2000 formula=1000+(1500<500) -> 1500 -> 1000+min(1500,500) -> 1000+500 -> 1500 |
Auteur: | Jyves [ 16 Août 2024 10:30 ] |
Sujet du message: | Re: Boutons complément de fioul |
Ça marche !!! Enfin presque… Ma consommation total actuelle est de 3.2 litres. Lorsque je fais « init » (que j’ai réglé à 600 pour le test), cuve m’affiche 596.8 puis une seconde après 593.6. Et lorsque j’ajoute 500, cuve m’affiche 1087.2 (593.6+500-3.2-3.2) À chaque fois qu’il y a une mise à jour de remplissage, il me soustrait 2x ma consommation totale actuelle. De plus, la valeur de « cuve » se met à jour uniquement lorsqu’on modifie le remplissage, mais pas quand il y a eu une consommation de fioul il me semble (j’ai pas encore consommé de fioul entre le moment où ça marche (presque) et maintenant) ? Si c’est le cas, dans la règle qui met à jour la cuve, j’ajoute le critère « ou si la valeur de la consommation totale change » ? De plus, si j’ai compris le fonctionnement, cuve va m’afficher à chaque mise à jour, la dernière valeur moins la consommation totale. C’est à dire (par exemple) 593.6 - 3.2, puis 590.4 - 3.3 et ainsi de suite. Elle va vite se vider ma cuve ! |
Auteur: | opa95 [ 16 Août 2024 11:07 ] |
Sujet du message: | Re: Boutons complément de fioul |
Bonjour Jyves
La partie script fonctionne donc bien. En fait, il ne faut pas soustraire de la cuve la consommation annuelle actuelle, mais seulement le nombre de litres non encore comptabilisés : VAR1 last-device(pince ampèremétrique)*k : k étant le facteur qui transforme les ampères ou volts en litres/minute qui va donner un nombre de litres si tu fait une lecture toutes les minutes, sinon à chaque lecture (toutes les minutes) tu vas retirer le total annuel consommé. Un fois cela corrigé, il est possible que init fasse le travail 2 fois. Le plus sur serait de mettre une mémoire tampon "buffer". La "pince" remplit une variable d'état "buffer" à chaque lecture. Le "compteur quotidien" est activé toutes les minutes pour être mis à jour à partir du "buffer". Les autres compteurs (y compris la cuve) ont une fréquence de 0, sont calculés a partir du "buffer" et sont déclenchés par une règle : Si le "compteur quotidien" change de valeur Action : "compteur mensuel" mettre à jour "compteur annuel" mettre à jour "cuve" mettre à jour "buffer" mettre à 0 (init ajoutera des 0) Si ta pince le permet, il pourrait être plus simple de mettre dans eedomus le gain (fenêtre de la pince) à la valeur correcte pour obtenir directement une valeur en litres/minute. |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |