Régulation d'une chaudière au fioul - Partage de ma réalisation

Au programme la régulation de température, la climatisation, les chauffe-eau...

Modérateur : Francois

nexen
Raspinaute
Messages : 175
Enregistré le : lun. 29 sept. 2014 13:58

Re: Régulation d'une chaudière au fioul - Partage de ma réalisation

Message par nexen » ven. 29 sept. 2017 10:01

... non, forker un nouveau process est extrêmement glouton surtout avec Python dont la VM est relativement lourde par rapport par exemple à Lua.
Je pense que je me suis mal expliqué : je ne parle pas de forker un process dans le sens de balancer x process en parralélle, mais juste de lancer le script toutes les 10 minutes sans avoir 9 minutes 50 de VM charger inutilement dans la mémoire du pi :)

pour le @Startup/@reboot : effectivement c'est le soucis des versions.

(je deteste juste les boucles while true avec des sleep :p )

par contre je ne connais pas Lua :)

@comteZera
pour ton : cur.execute("INSERT INTO temperature (date, temperature) VALUES (%s, %s)", (DATE, TEMPERATURE)) .... un TIMESTAMP c'est sympatique ;)

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Régulation d'une chaudière au fioul - Partage de ma réalisation

Message par destroyedlolo » ven. 29 sept. 2017 13:12

nexen a écrit :Je pense que je me suis mal expliqué : je ne parle pas de forker un process dans le sens de balancer x process en parralélle, mais juste de lancer le script toutes les 10 minutes sans avoir 9 minutes 50 de VM charger inutilement dans la mémoire du pi :)
Ben j'ai fais des tests sur la mise en place de monitoring sur des systèmes ayant relativement peu de mémoire ou très chargé : il était moins stressant de garder le process en mémoire, même en sleep() plutot que de le relancer dans le cron. Simplement parce qu'entre temps, le systeme avait ré-alloué la mémoire à d'autres tâches (buffer / cashing ...) donc quand le monitoring était relancé, il y avait plein de PageIN/PageOUT pour lui réserver de la mémoire. C'était encore pire avec des solutions comme Nagios où tout est en scriptshell et donc qui use et abuse de fork() a tour de bras ce qui créait une empreinte visible ou lorsque les dits outils sont en ... Java (à la HP-UX).
Dans ce cas précis, on s'en tape un peu car je doute que le PI de notre ami soit surchargé.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Régulation d'une chaudière au fioul - Partage de ma réalisation

Message par Bud Spencer » ven. 29 sept. 2017 22:25

ComteZera a écrit : Je crois que j'ai un petit bug sur la durée affichée :oops:
Là, je dirais que cela dépend de la dimension que tu donnes a ‘petit’ :lol: ;) .

Aller pour sortir des ragots, je te soumets une petite idée pour ça :
ComteZera a écrit : Là encore, une amélioration serait à apporter, il me manque la suppression des règles :oops:
Quand tu fais une requête d’insert pour ajouter une nouvelle règle, tu pourrais simplement la faire suivre d’une requête de delete pour supprimer toutes les règles qui ont une date d’application antérieure à celle qui est en cours. C’est juste une seule ligne de code à ajouter ;)

Un autre petit conseil : N’utilise pas de sortie GPIO indépendante pour tes leds de visu. Utilise la même sortie que pour le relais associé. Tu feras l’économie d’une gpio pour chaque sortie et tu seras sur que la led et le relais auront le même état indépendamment du programme. Dans l’absolu, ta led devrait même se trouver coté ‘utilisation’ du relais, mais si tu switch du secteur, c’est un peu plus compliqué électroniquement et vu que c’est pour du home …

Ps : fais gaffe aussi dans tes codes php. Certains ont plusieurs instructions de connexion et l’un d’eux a même une requête de select écrite 2 fois de suite …

Code : Tout sélectionner

...

$Fin = date("Y-m-d", strtotime("+1 day"));
 $reponse = $bdd->query('SELECT * FROM temperature WHERE date BETWEEN "' . $Debut .'" AND"' . $Fin. '"');
                  
$espacement=0;
                  
//creation des points pour le tracage de la courbe
 $reponse = $bdd->query('SELECT * FROM temperature WHERE date BETWEEN "' . $Debut .'" AND"' . $Fin. '"');
 
 ...
Pis vue que l’on est la, corrige donc la requête en ajoutant un espace après le AND ... ( .'" AND"' . -> .'" AND "' .) ...
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Gestion de la température »